fprintf('
------------------\n')
fprintf(' MÉTODO DE
BISECIÓN\n')
fprintf('
------------------\n')
fprintf('\n');
syms x
h=input('- Defina la función : ');
a=input('- Introduzca el valor de a : ');
b=input('- Introduzca el valor de b : ');
error=input('- Introduzca el valor de precisión : ');
g=h;
fa=subs(g,a);
fb=subs(g,b);
if fa*fb < 0
c=a+(b-a)/2;
fc=subs(g,c);
m=a;
n=b;
cont=1;
fprintf('\n\n');
fprintf('
|------------------------------------------------------------------------------------------|\n');
fprintf('
| n= %3.0f | a= %0.9f
| b= %0.9f | P=
%0.9f |
Error= %e |\n', cont,m,n,c,abs(fc))
while abs(fc) > error
cont=cont+1;
if fa*fc > 0
a=c;
else
b=c;
end
c=a+(b-a)/2;
fc=subs(g,c);
m=a;
n=b;
fprintf('
| n= %3.0f | a= %0.9f
| b= %0.9f | P=
%0.9f | Error= %e |\n', cont,m,n,c,abs(fc))
end
end
fprintf('
|------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es : %10.9f\n',c);
fprintf('\n\n');
fprintf('
-----------------\n')
fprintf(' MÉTODO DE
NEVILLE\n')
fprintf('
-----------------\n')
fprintf('\n');
syms x
res=input('- La Funcion le fue dada(Si=1,No=0)? : ');
if res==1
fun=input('- Introduzca la Funcion F(x) : ','s');
end
Xi=input('- Introduzca la cantidad para
aproximar : ');
n=input('- Introduzca la cantidad de puntos dados
: ');
fprintf('\n\n');
for i=0:(n-1),
fprintf('-
Introduzca X%1.0f ',i);
X(i+1)=input (' = ');
if res==0
fprintf('-
Introduzca F(X%1.0f) ',i);
FX(i+1)=input(' = ');
else
FX(i+1)=funcion(X(i+1),fun);
end
end
for i=1:n,
Q(i,1)=FX(i);
end
for i=2:n,
for j=i:n,
Q(j,i)=(((Xi-X(j-i+1))*Q(j,i-1))-((Xi-X(j))*Q(j-1,i-1)))/(X(j)-X(j-i+1));
end
end
fprintf('\n\n');
for i=2:n,
for j=i:n,
fprintf('-
Q (%1.0f,%1.0f) = %3.8f\n ',j-1,i-1,Q(j,i));
fprintf('\n');
end
end
fprintf(' ------------------------\n')
fprintf(' MÉTODO DE
NEWTON RAPHSON\n')
fprintf('
------------------------\n')
fprintf('\n');
syms x
h=input ('- Defina la función : ');
Po=input('- Introduzca el valor de Xo : ');
error=input('- Introduzca el valor de precisión : ');
g=h;
i=subs(g,Po);
j=diff(g,x);
k=subs(j,Po);
P=Po-(i/k);
E=P-Po;
cont=1;
fprintf('\n\n');
fprintf(' |--------------------------------------------------------------------------|\n');
fprintf(' | n= %3.0f | Xo=
%0.9f |
X= %0.9f | Error= %e |\n', cont,Po,P,abs(E))
while abs(E) > error
cont=cont+1;
Po=P;
i=subs(g,Po);
j=diff(g,x);
k=subs(j,Po);
P=Po-(i/k);
E=P-Po;
fprintf('
| n= %3.0f | Xo= %0.9f
| X= %0.9f |
Error= %e |\n', cont,Po,P,abs(E))
end
fprintf('
|--------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es : %10.9f\n',P);
fprintf('\n\n');
fprintf('- El Error absoluto es : %e\n',abs(E));
fprintf('\n\n');
fprintf('
--------------------\n')
fprintf(' MÉTODO DE
PUNTO FIJO\n')
fprintf('
--------------------\n')
fprintf('\n');
syms x
h=input ('- Defina la función : ');
Po=input('- Introduzca el valor de Po : ');
error=input('- Introduzca el valor de precisión : ');
g=h;
P=subs(g,Po);
E=P-Po;
cont=1;
fprintf('\n\n');
fprintf('
|-------------------------------------------------------------------------|\n');
fprintf(' | n= %3.0f | Po=
%0.9f |
P= %0.9f | Error= %e
|\n',
cont,Po,P,abs(E))
while abs(E) > error
cont=cont+1;
Po=P;
P=subs(g,Po);
E=P-Po;
fprintf('
| n= %3.0f | Po= %0.9f
| P= %0.9f |
Error= %e |\n', cont,Po,P,abs(E))
end
fprintf('
|-------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es : %10.9f\n',P);
fprintf('\n\n');
fprintf('
---------------------------\n')
fprintf(' MÉTODO DE LA
POSICIÓN FALSA\n')
fprintf(' ---------------------------\n')
fprintf('\n');
syms x
h=input ('- Defina la función : ');
Po=input('- Introduzca el valor de Po : ');
P1=input('- Introduzca el valor de P1 : ');
error=input('- Introduzca el valor de precisión : ');
g=h;
i=subs(g,P1);
j=subs(g,Po);
P2=P1-[(i*(P1-Po))/(i-j)];
E=P2-P1;
cont=1;
fprintf('\n\n');
fprintf('
|----------------------------------------------------------------------------------------------|\n');
fprintf(' | n= %3.0f | Po=
%0.9f |
P1= %0.9f | P2= %0.9f
| Error= %e |\n', cont,Po,P1,P2,abs(E))
while abs(E) > error
cont=cont+1;
i=subs(g,P1);
k=subs(g,P2);
if i*k < 0
Po=P1;
P1=P2;
else
Po=Po;
P1=P2;
end
i=subs(g,P1);
j=subs(g,Po);
P2=P1-[(i*(P1-Po))/(i-j)];
E=P2-P1;
fprintf('
| n= %3.0f | Po= %0.9f
| P1= %0.9f | P2=
%0.9f |
Error= %e |\n', cont,Po,P1,P2,abs(E))
end
fprintf('
|----------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es : %10.9f\n',P2);
fprintf('\n\n');
fprintf('
--------------------\n')
fprintf(' MÉTODO DE LA
SECANTE\n')
fprintf(' --------------------\n')
fprintf('\n');
syms x
h=input ('- Defina la función : ');
Po=input('- Introduzca el valor de Po : ');
P1=input('- Introduzca el valor de P1 : ');
error=input('- Introduzca el valor de precisión : ');
g=h;
i=subs(g,P1);
j=subs(g,Po);
P2=P1-[(i*(P1-Po))/(i-j)];
E=P2-P1;
cont=1;
fprintf('\n\n');
fprintf('
|----------------------------------------------------------------------------------------------|\n');
fprintf(' | n= %3.0f | Po=
%0.9f |
P1= %0.9f | P2= %0.9f
| Error= %e |\n', cont,Po,P1,P2,abs(E))
while abs(E) > error
cont=cont+1;
Po=P1;
P1=P2;
i=subs(g,P1);
j=subs(g,Po);
P2=P1-[(i*(P1-Po))/(i-j)];
E=P2-P1;
fprintf(' | n= %3.0f | Po= %0.9f
| P1= %0.9f | P2=
%0.9f |
Error= %e |\n', cont,Po,P1,P2,abs(E))
end
fprintf('
|----------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es : %10.9f\n',P2);
fprintf('\n\n');
fprintf('
---------------------\n')
fprintf(' MÉTODO DE
STEFFENSSEN\n')
fprintf('
---------------------\n')
fprintf('\n');
syms x
Po=input('- Introduzca el valor de Po : ');
error=input('- Valor de precisión : ');
g=h;
P1=subs(g,Po);
P2=subs(g,P1);
P3=Po-(((P1-Po)^2)/(P2-(2*P1)+Po));
E=P3-Po;
cont=1;
fprintf('\n\n');
fprintf(' |-------------------------------------------------------------------------------------------|\n');
fprintf(' |n= %3.0f|Po= %0.9f|P1= %0.9f|P2=
%0.9f|P3= %0.9f|Error= %e|\n', cont,Po,P1,P2,P3,abs(E))
while abs(E) > error
cont=cont+1;
Po=P3;
P1=subs(g,Po);
P2=subs(g,P1);
P3=Po-(((P1-Po)^2)/(P2-(2*P1)+Po));
E=P3-Po;
fprintf(' |n= %3.0f|Po= %0.9f|P1= %0.9f|P2= %0.9f|P3= %0.9f|Error= %e|\n',
cont,Po,P1,P2,P3,abs(E))
end
fprintf('
|-------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- El valor de x es : %10.9f\n',P3);
fprintf('\n\n');
EJERCICIO
DE APLICACIÓN
fprintf('
---------------------\n')
fprintf(' MÉTODO DE STEFFENSSEN\n')
fprintf('
---------------------\n')
fprintf('\n');
syms x
a=input('- Valor del diámetro : ');
b=input('- Constante de Stefan Boltzman : ');
c=input('- Emisividad de la superficie : ');
d=input('- Coeficiente de transferencia : ');
e=input('- Temperatura ambiente : ');
f=input('- Potencia eléctrica : ');
h= input('- Función : ');
Po=input('- Valor de To : ');
error=input('- Valor de precisión : ');
g=h;
P1=subs(g,Po);
P2=subs(g,P1);
P3=Po-(((P1-Po)^2)/(P2-(2*P1)+Po));
E=P3-Po;
cont=1;
fprintf('\n\n');
fprintf('
|--------------------------------------------------------------------------------------------------|\n');
fprintf(' |n= %3.0f|To= %1.9f|T1= %1.9f|T2=
%1.9f|T= %1.9f|Error= %e|\n', cont,Po,P1,P2,P3,abs(E))
while abs(E) > error
cont=cont+1;
Po=P3;
P1=subs(g,Po);
P2=subs(g,P1);
P3=Po-(((P1-Po)^2)/(P2-(2*P1)+Po));
E=P3-Po;
fprintf(' |n= %3.0f|To= %1.9f|T1= %1.9f|T2= %1.9f|T= %1.9f|Error= %e|\n',
cont,Po,P1,P2,P3,abs(E))
end
fprintf('
|--------------------------------------------------------------------------------------------------|\n');
fprintf('\n\n');
fprintf('- La temperatura es : %10.9f\n',P3);
fprintf('\n\n');
fprintf('- El Error Absoluto es : %e\n',P3);
fprintf('\n\n');