Documentos de Académico
Documentos de Profesional
Documentos de Cultura
clc;
clear;
Tol=10^(-6);
Nlim=100;
syms x
faux=input('Introduce la funcion f(x):');
xi=input('Introduce el valor para el limite inferior del intervalo
estudiando (xi):');
xu=input('Introduce el valor para el limite superior del intervalo
estudiando (xu):')
f=inline(faux);%define la funcion f a partir de la expresion introducida
en faux
Tabla(1,1)=0;
Tabla(1,2)=xi;
Tabla(1,3)=xu;
xr=(xi+xu)/2;
Tabla(1,4)=xr;
Tabla(1,5)=abs((xu-xi)/(xu+xi))*100;
i=2;
while (i<Nlim+1)
Tabla(i,1)=i-1;
if f(xi)*f(xr)<0
xu=xr;
else
xi=xr;
end
Tabla(i,2)=xi;
Tabla(i,3)=xu;
xr=(xi+xu)/2;
Tabla(i,4)=xr;
error=abs((Tabla(i,4)-Tabla(i-1,4))./Tabla(i,4))*100;
Tabla(i,5)=error;
if error>Tol
i=i+1;
else
i=Nlim+1;
Tabla
end
end
%end
%funtion Tabla=newton(Tol,Nlim)
%Esta funcion resuelve una ecuacion no lineal utilizando el
%metodo de Newton-Rsphson
%La funcion es introducida al correr el programa
clc
clear
Tol=10^(-6);
Nlim=100;
syms x
faux=input('Introduce la funcion f(x):');
fderaux= diff(faux,x);
f=inline(faux);%define la funcion f a partir de la expresion introducida
en faux
fder=inline(fderaux);%define la funcion fder a partir de la expresion
introducida en fderaux
x0=input('Introduce el valor de la iteracion inicial (x_0):');
i=1;
while(i<Nlim+1)
Tabla(i,1)=i-1;
Tabla(i,2)=x0;
x0=x0-(f(x0)/fder(x0));
Tabla(i,3)=x0;
error=abs((Tabla(i,3)-Tabla(i,2))./Tabla(i,3))*100;
Tabla(i,4)=error;
if abs(Tabla(i,3)-Tabla(i,2))
'<500'%controla que dos aproximaciones cosnecutivas no esten "
muy " separadas
if error>Tol
i=i+1;
else
i=Nlim+1;
Tabla
end
else
i=Nlim+1;
disp('Error,analice considerar un mejor iteracion inicial')
end
end
%end
clear;
clc;
A=zeros(n,n);
b=zeros(n,1);
x=b;
for i=1:n
for j=1:n
fprintf('Ingresa el valor de la componente A(%d,%d): ',i,j);%guarda las componentes de A por
renglones
A(i,j)=input('');
end
b(i)=input('');
end
%Matriz ampliada
Ab=[A,b];
for j=1:n-1 %con j controlamos el renglón a considerar para realizar la reducción de la matriz.
end
end
for i=n:-1:1 %con i controlamos el renglón que consideramos para realizar la sustitución hacia
atras, tambien indica el número de incognita (xi:incognita i)
x(i)=Ab(i,n+1);
for j=i+1:n %con j controlamos el número de la incognita ya calculada que servirá para
calcular la incognita anterior
x(i)=x(i)-x(j)*Ab(i,j);
end
x(i)=x(i)/Ab(i,i);
end
for i=1:n
for j=1:n
fprintf('%+.3g x%d ',A(i,j),j);%muestra la parte de las incognitas en las ecuaciones
end
end
disp(x);
function Y=Gderivada(x)
%Introduce cada derivada parcial como una entrada diferente del Jacobiano
Y(1,1)=2*x(1);
Y(1,2)=3*x(2)^2;
Y(2,1)=sin(x(1))+x(1)*cos(x(1))+x(2)*sin(x(1));
Y(2,2)=-cos(x(1));
end
function y=Gmul(x)
y(1)=x(1)^2+x(2)^3-5;
y(2)=x(1)*sin(x(1))-x(2)*cos(x(1))-2;
end
%function T=newtonmulti(Tol,Nlim)
%metodo de Newton-Raphson
clc
close all
Tol=0.0001;
Nlim=100;
T(1,1)=0;
j=2;
while (j<=k+1)
T(1,j)=x0(j-1);
j=j+1;
end
i=2;
while (i<Nlim+1)
T(i,1)=i-1;
x=x0-(inv(Gderivada(x0)))*(Gmul(x0).');
error=norm(x-x0)/norm(x);
T(i,k+2)=error;
x0=x;
j=2;
while (j<=k+1)
T(i,j)=x0(j-1);
j=j+1;
end
%Criterio de finalizacion
if error<500
if error>Tol
i=i+1;
else
i=Nlim+1;
end
else
i=Nlim+1;
end
end
%end
function y=newton(fun,x0,tol)
syms x
f=inline(fun)
dfun=diff(fun,x)
df=INLINE(dfun)
disp(' n xi error');
n=1;
error=1000;
while error>=tol
a=x0-f(x0)/df(x0);
error =abs(a-x0);
fprintf('\t%i\t%3.5f\t%3.5f\n', n , a , error);
x0=a;
n=n+1;
end
%Grafica de funciones
clc,clear
f='3*.x^4+2*x-1';
syms x
x=-3:0.02:7;
y=eval(f);
plot(x,y)
grid on
hold on
plot(x,zeros(size(x)),'r')
%comandos para borrado de pantalla y de variables(recomandado).
clear;
clc;
syms x;
a=input('Introducir el extremo inferior del intervalo donde será graficada f(x) :');
b=input('Introducir el extremo superior del intervalo donde será graficada f(x) :');
x=a:(b-a)/300:b;
y1=eval(f);
x1=x;
syms x;
c=input('Introducir el extremo inferior del intervalo donde será graficada g(x) :');
d=input('Introducir el extremo superior del intervalo donde será graficada g(x) :');
x=c:(d-c)/300:d;
y2=eval(g);
x2=x;
plot(x1, y1);
grid on
xlabel('Eje X');
ylabel('Eje Y');
title('Función f(x)');
subplot(1,2,2);
plot(x2, y2);
grid on;
xlabel('Eje X');
ylabel('Eje Y');
title('Función g(x)');
%Grafica de funciones
clc,clear
x=-5:0.01:5;
y=3*x.^3+2*x-17;
z=zeros(size(x));
plot(x,y)
grid on
hold on
plot(x,z,'r')