Documentos de Académico
Documentos de Profesional
Documentos de Cultura
function[C,L]=lagrange(X,Y)
%DATOS
%X es un vector que contiene la lista de las abscisas
%Y es un vector que contiene la lista de las ordenadas
%RESULTADOS
%C es una matriz que contiene los coeficientes del
%polinomio interpolador de lagrange
%L es la matriz que contiene los coeficientes de los polinomios
%coeficientes de lagrange
w=length (X);
n=w-1;
L=zeros (w,w);
%FORMACIN DE LOS POLINOMIOS COEFICIENTES DE LAGRANGE (Lk)
for k =1:n+1
V=1;
for r=1:n+1
if k~=r
V=conv(V,poly(X(r)))/(X(k)-X(r));
end
end
L(k,:)=V;
end
%CALCULO DE LOS COEFICIENTES DEL POLINOMIO
%INTERPOLADOR DE LAGRANGE
C=Y*L
>> X=[300:100:900];
>> Y=[0.025 0.030 0.045 0.055 0.067 0.083 0.097];
>> [C,L]=lagrange(X,Y)
C=
Columns 1 through 4
Columns 5 through 7
C=
Columns 1 through 4
Columns 5 through 7
L=
1.0e+002 *
Columns 1 through 4
Columns 5 through 7
>> v=300:900;
>> y=polyval(C,v);
>> plot(v,y)
>> a=polyval(C,350)
a=
0.023222656249942
>> b=polyval(C,660)
b=
0.061573235199702
>> x=0:4;
>> y=(1+x)./(1+2*x+3*x.^2);
>> [C,L]=lagrange(X,Y)
C=
Columns 1 through 4
Columns 5 through 7
C=
Columns 1 through 4
Columns 5 through 7
L=
1.0e+002 *
Columns 1 through 4
Columns 5 through 7
>> u=0:0.1:4;
>> f=(1+u)./(1+2*u+3*u.^2);
>> plot(u,f,'r')
>> hold on
>> p=polyval(C,u);
>> plot(u,p,'b')
>>
BISECCION
function c=biseccion(g,a,b,tol)
%Datos
%g es la funcion introducida como una cadena de caracteres
%a y b son los extremos del intervalo
%tol es la tolerancia para el error
%RESULTADOS
%c es la aproximacion al cero de f
k=0;
ya=feval(g,a);
yb=feval(g,b);
if ya*yb<=0
while abs(a-b)/2>tol
c=(a+b)/2;
yc=feval(g,c);
fprintf('%7d%14.9f%14.9f%14.9f%14.9f\n',k,a,b,c,yc)
k=k+1;
if ya*yc<=0
b=c; yb=yc;
else
a=c; ya=yc;
end
end
else
fprintf ('CAMBIAR LIMITES');
end
function y=g(x)
y=sin(x)-2*cos(x);
end
c=biseccion('g',a,b,tol)
SIMPSON
function s=simpson(f,a,b,M)
%DATOS
% f es el integrado dado como una
%cadena de caracteres
%a y b son los extremos inferior y
%superior del intervalo de integracin
%M es el nmero de subintervalos
%RESULTADOS
%S es la aproximacin obtenida
%con la regla compuesta de
%Simpson
h=(b-a)/(2*M);
s1=0;
s2=0;
for k=1:M
x=a+h*(2*k-1);
s1=s1+feval(f,x);
end
for k=1:(M-1)
x=a+h*2*k;
s2=s2+feval(f,x);
end
s=h*(feval(f,a)+ feval(f,b)+4*s1+2*s2)/3
NEWTON
function pi=newton(f,df,po,tol,N)
%Datos
%f es la funcion de dos veces diferenciable
%df es la variable de f
%po es la aproximacion inicial al cero de f
%N es el numero maximo de iteraciones
%RESULTADOS
%p1 es la aproximacion al cero de f
for k=1:N
p1=po-feval(f,po)/feval(df,po);
fprintf('%5d%12.7f\n',k,p1);
if (abs(p1-po)<tol | k==N),break
end
po=p1
end
function y=f(x)
y=x^2-38;
end
function y=df(x)
y=2*x;
end
TRAPECIO
function s=trapeciocomp(f,a,b,M)
%DATOS
%f es el integrante, dado como una
%cadena de caracteres
%a y b son los extremos inferior y
%superior del intervalo de integracion
%M es el numero de subintervalos
%Resultado
%S es la aproximacion obtenida
%con la regla compuesta del
%trapecio
h=(b-a)/M;
s=0
for k=1:M-1
x=a+k*h;
s=s+feval(f,x);
end
s=h*(feval(f,a)+ feval(f,b))/2+ h*s;
function y=t(x)
y=1/(1+x^2);
end
JACOBI
function x = jacobi(A,b,x0,tol, max)
%DATOS
% A es una matriz invertible nxn
% b es una matriz nx1
% x0 es la matriz nx1 (aproximacion inicial)
% tol es la tolerancia para la aproximacion
% max es el nmero maximo de iteraciones
% RESULTADOS
% x es una matriz nx1
% es la aproximaciona a la solucion de Ax=b
% generada por el mtodo de jacobi
n = length(b);
for k = 1:max
for r=1:n
x(r) = (b(r) - A(r,[1:r-1, r+1:n])*x0([1:r-1,r+1:n]))/A(r,r);
end
k
x
errorabs = norm(x'- x0);
x0=x';
if errorabs < tol
break
end
end
>> A=[3 1 0; -1 3 1; 0 2 3]
A =
3
1
0
-1
3
1
0
2
3
>> b=[1 -1 0]'
b =
1
-1
0
>> solexacta=inv(A)*b
solexacta =
0.4167
-0.2500
0.1667
>> x0=[5 4 8]'
x0 =
5
4
8
>> tol=10^(-6)
tol =
1.0000e-006
>> max=50
max =
50
>> x=jacobi(A,b,x0,tol,max)