METODOS NUMERICOS EN MATLAB
clear, clc %se ingresan los valores de la ecuacion.
fo = input('ingresar la funcion f: ');
%se ingresan los valores de la ecuacion.
go = input('ingresar la funcion g: ');
%se ingresan los valores de la ecuacion g(x)
f =inline(fo);
%convierte la ecuacion original en una funcion lineal.
g =inline(go);
%convierte la ecuacion g(x) en una funcionlineal.
syms x
%se determina x como una variable
dg = diff(go, x);
%se obtiene la derivada de go con respecto de x
x = input('ingrese el primer valor: ');
%pide l valor inicial de x
if(abs(eval(dg))<1)
tol=input('ingrese la tolerancia:');
disp(' i xi f(xi)')
fprintf(' 0.0000 %7.4f ------\n',x)
e=100;
n=0;
while(e>tol)
n=n+1;x=g(x);
e=abs(f(x));
disp([n,x,e])
end
else
disp('ingrese otra funcion g(x), con la actual el metodo diverge')
end
METODO DE NEWTON-RAPHSON (PROGRAMA MATLAB)
clear, clc %lmpia el wordspace y el command windows
fo = input('ingresar la funcion a evaluar: ');
%se ingresan los valores de la ecuacion.
syms x
%se define a x como una veriable
f=inline(fo);
%convierte la ecuacion original en una funcion lineal.
derivada= diff(fo, x);
%deriva la ecuacion original con respecto de x
df= inline(derivada);
%la derivada de la ecuacion original se convierte en una funcion lineal
tol= input ('ingrese el margen de error: ');
%se ingresa el margen de error
e=100;%error inicial
x=input('ingrese el valor inicial: ');
%se pide el primer valorde x
n=0;
%numero de iteraciones
disp(' i xi f(xi)')
%los anteriores son los creiterios que se tomaran en cuanta en la
%tabulacion de la funcion.
fprintf(' %i %5.8f ------\n',n,x);
% "%i" indica que esa parte de la columna son numeros unicamente enteros
% "%f" indica que esa parte de la columna son numero reales, esto quiere
% decir que son numero con decimales yal agregar los numers "5.8"
% indicamos el numero de enteros y el numero de decimales deseados.
while (e>tol)
n=n+1;
x=x-f(x)/df(x);
e=abs( f(x) );
fprintf(' %i %5.8f %5.8f\n',n,x,e);
end
METODO DE LA SECANTE (PROGRAMA MATLAB)
%metoo de la secante.
clear, clc
%lmpia el wordspace y el command windows
fo = input('ingresar la funcion original entre comillassimples: ');
%se ingresan los valores de la ecuacion.
f =inline(fo);
%convierte la ecuacion original en una funcion lineal.
xo = input('ingresar el valor de x0: ');
%se ingresa el valor inicial de xo.
x1 = input('ingresar el valor de x1: ');
%se ingresa el valor inicial de x1.
e = input('ingresar el margen de error: ');
%se ingresa el margen de error.
E =100;
%error inicial.
n=0;
%n indicarael numero de iteraciones.
fprintf('i xi-1 xi xi+1 f(xi)\n');
%los anteriores son los creiterios que se tomaran en cuanta en la
%tabulacion de la funcion.
fprintf('%i %5.5f %5.5f ------ ------\n',n,xo,x1);
% "%i" indica que esa parte de la columna son numeros unicamente enteros
% "%f" indica que esa parte de la columna son numero reales, estoquiere
% decir que son numero con decimales y al agregar los numers "5.5"
% indicamos el numero de enteros y el numero de decimales deseados.
while( E>e )
n = n+1;
x2= x1 - ( (f(x1)*(x1-xo) ) / (f(x1)-f(xo)) );
E=abs(f(x2));
xo = x1;
x1 = x2;
fprintf('%i %5.5f %5.5f %5.5f %5.5f\n',n,xo,x1,x2,E);
end
%El "Bucle while" o "buclemientras" es una estructura de la mayoría de los
%lenguajes de programación estructurados cuyo propósito es repetir un
%bloque de código mientras una condición se mantenga verdadera.
METODO DE LA POSICION FALSA (PROGRAMA MATLAB)
clc %limpia el command windows
clear %limpia el wordspace
fo=input('íngrese la funcion original entre comillas simples: ');
%se ingresa la cuacion inicial...
Regístrate para leer el documento completo.