Sie sind auf Seite 1von 10

ELIMINACION GAUSSIANA

function X=eliminacingaussiana(A,B)
%Datos:
%A es una matriz invertible de orden NxN
%B es una matriz de orden Nx1
%Resultados:
%X es una matriz de orden Nx1 que contiene la solucin de AX=B
%Inicializamos X y una matriz C que sirve de almacen temporal
[N N]=size(A);
X=zeros(N,1);
C=zeros(1,N+1);
%Clculo de la matriz ampliada MA=[A|B]
MA=[A B];
for q=1:N-1
%Pivoteo parcial en la columna q-sima
[Y j]=max(abs(MA(q:N,q)));
%Intercambiamos las filas q-sima y (j+q-1)-sima
C=MA(q,:);
MA(q,:)=MA(j+q-1,:);
MA(j+q-1,:)=C;
if MA(q,q)==0
disp('A no es invertible. No hay solucin o no es nica')
break
end
%Proceso de elimincacin en la columna q-sima
for k=q+1:N
m=MA(k,q)/MA(q,q);
MA(k,q:N+1)=MA(k,q:N+1)-m*MA(q,q:N+1);
end
end
X=backsub(MA(1:N,1:N),MA(1:N,N+1))
function X=backsub(A,B)
n=length(B);
X=zeros(n,1);X(n)=B(n)/A(n,n);
for w=n-1:-1:1
X(w)=(B(w)-A(w,w+1:n)*X(w+1:n))/A(w,w);
end
end
MA
end

>> A=[3 2 1; 5 4 1; 7 8 9]
A=
3
2
1
5
4
1
7
8
9

>> B=[1 8 7]'


B=
1
8
7
>> eliminaciongaussiana(A,B)
X=
-3.3000
6.8000
-2.7000
MA =
7.0000 8.0000 9.0000 7.0000
0 -1.7143 -5.4286 3.0000
0
0 1.6667 -4.5000
ans =
-3.3000
6.8000
-2.7000
METODO GRAFICO

0 7 x 3 10 x y 1
0 8 y 3 11y x 1
syms x
x = linspace(-2,2);
y = 7*(x.^3)-(10*x)-1;
y1= linspace(-2,2);
x1 = -8*(y1.^3) + (11*y1)+1;
%Grfica
plot(x,y);title('Grfica de las funciones');grid on
hold on
plot (x1,y1,'m')

z 7 x 3 10 x y 1
z 8 y 3 11y x 1
syms x
[x y] = meshgrid(-15:0.5:15);
z = 7*(x.^3)-(10*x)- y - 1;
[x1 y1] = meshgrid(-15:0.5:15);
z1 = 8*(y1.^3) - (11*y1) + x1 - 1;
%Grfica
surf(x,y,z);title('Grfica de las funciones');grid
on;xlabel('x'),ylabel('y'),zlabel('z')
hold on
mesh(x1,y1,z1)

NEWTON RAPHSON
clear all
x=input('Digite coordenada inicial en x para empezar la iteracin: ');
y=input('Digite coordenada inicial en y para empezar la iteracin: ');
imax=input('Digite el nmero de iteraciones mximas: ');
tol=input('Digite el valor de la tolerancia: ');
centinela=true;
i=0;
while centinela
i=i+1;
v=mysis(x,y);
j=jacobian(x,y);
c=inv(j)*(-v);
x=x+c(1,1);
y=y+c(2,1);
if dot(c,c)<tol || imax<=i
centinela=false;
end
end
x
y
function v=mysis(x,y)
v=zeros(2,1);
v(1)=(7*(x^3))-(10*x)-y-1;
v(2)=(8*(y^3))-(11*y)+x-1;
end
function j=jacobian(x,y)
j=zeros(2,2);
j(1,1)=(21*(x^2))-10;
j(1,2)=-1;
j(2,1)=1;
j(2,2)=(24*(y^2))-11;
end

FACTORIZACION LU
function X=factorizacionLU(A,B)
%Datos
%-A es una matriz de orden NxN
%-B es una matriz de orden Nx1
%Resultados
%-X es la matriz de orden Nx1 solucin de AX=B
%Inicializamos X,Y,la matriz de almacenamiento temporal C, y la matriz
fila
%R donde se registran las intercambios de filas
[N N]=size(A);
X=zeros(N,1);
Y=zeros(N,1);
C=zeros(1,N);
R=1:N;
for q=1:N-1
%Determinacin de la fila pivote para la columna q-sima
[max1,j]=max(abs(A(q:N,q)));
%Intercambio de las filas q-sima y j-sima
C=A(q,:);
A(q,:)=A(j+q-1,:);
A(j+q-1,:)=C;
d=R(q);
R(q)=R(j+q-1);
R(j+q-1)=d;
if A(q,q)==0
disp('A es singular (No invertible). No hay solucin o no es
nica')
break
end
%Clculo del multiplicador que se guarda en la parte subdiagonal
de A
for k=q+1:N
mult=A(k,q)/A(q,q);
A(k,q)=mult;
A(k,q+1:N)=A(k,q+1:N)-mult*A(q,q+1:N);
end
end
%Resolucin para hallar Y
Y(1)=B(R(1));
for k=2:N
Y(k)=B(R(k))-A(k,1:k-1)*Y(1:k-1);
end
%Resolucin para hallar X
X(N)=Y(N)/A(N,N);
for k=N-1:-1:1
X(k)=(Y(k)-A(k,k+1:N)*X(k+1:N))/A(k,k);
end
end

En la pantalla de comandos:
>> A=[1 3 5 7;2 -1 3 5;0 0 2 5;-2 -6 -3 1]
A=
1
2
0
-2

3
-1
0
-6

5
3
2
-3

7
5
5
1

>> B=[1;2;3;4]
B=
1
2
3
4
>> factorizacionLU(A,B)
ans =
1.3429
0.6857
-3.0000
1.8000

AJUSTES DE CURVAS
LAGRANGE

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 la matriz que contiene los coeficientes del polinomio
inrterpolador
% 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
for k=1:n+1
V=1;
for j=1:n+1
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
%Calculo de los coeficientes del polinomio interpolador de lagrange
C=Y*L;

Ejemplo
>> X=[0 0.5 1 1.5 2];
>> Y=sin(X);
>> lagrange(X,Y)
ans =
0.0336 -0.2191
>>
>>
>>
>>
>>
>>
>>

0.0350

0.9919

I=linspace(0,2);
pol=(0.0336.*I.^4)-(0.2191.*I.^3)+(0.0350.*I.^2)+(0.9919.*I);
hold on
plot(I,sin(I),'r')
plot(I,pol)
plot(X,Y,'o')
grid on

NEWTON
function [C,D]=newpoly(X,Y)
%Datos
%X es un vector con la lista de las abscisas
%Y es un vector con la lnea de las ordendas

%Resultados
%C es un vector que contiene los coeficientes del polinomio
interpolador
%de newton, escrito en forma habitual en potencias decrecientes de x
% D es la tabla de diferencias divididas
n=length(X);
D=zeros(n,n);
D(:,1)=Y';
for j=2:n
for k=j:n
D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));
end
end
%Calculo del vector que contiene los coeficientes del polinomio
%interpolador de newton
C=D(n,n);
for k=(n-1):-1:1
C=conv(C,poly(X(k)));
m=length(C);
C(m)=C(m)+D(k,k);
end

>> X=[0 0.5 1 1.5 2];


>> Y=sin(X);
>> newpoly(X,Y)
ans =
0.0336 -0.2191

0.0350

0.9919

0.0350

0.9919

>> lagrange(X,Y)
ans =
0.0336 -0.2191

MINIMOS CUADRADOS
function C=polmincua(X,Y,M)
%Datos
%X es el vector de orden 1 x n de las abscisas
%Y es el vector de orden 1 x n de las ordenadas
% M es el grado del polinomio ptimo

%Resultados
%C es el vector de coeficientes del polinomio en potencias
decrecientes de
%x
n=length(X);
B=zeros(1:M+1);
F=zeros(n,M+1);
% Se rellenan las columnas de F con las potencias de X
for k=1:M+1
F(:,k)=X'.^(k-1);
end
% Resolucin de las ecuaiones normales
A=F'*F;
B=F'*Y';
C=A\B;
C=flipud(C);

>> X=[0 0.5 1 2];


>> Y=sin(X);
>> polmincua(X,Y,0)
ans =
0.5575
>> polmincua(X,Y,1)
ans =
0.4335
0.1782
>> polmincua(X,Y,2)
ans =
-0.3730
1.2062
-0.0083
>> polmincua(X,Y,3)
ans =
-0.1014
-0.0827
1.0255
0.0000

INTERPOLACION
Se tiene N+ 1 puntos
(xo, yo); (x1,y1)..;(xn,yn)
Se construye un polinomio de grado N que pase por los N+1 puntos.

Los polinomios se utilizan para disear algoritmos de aproximacin de


funciones, para derivar e integrar numricamente y para dibujar, mediante
un computador, curvas que deben pasar por puntos especificados de
antemano.
INTERPOLACION DE LAGRANGE
Par construir un polinomio de grado menor o igual a N y que pase por N+1
N

puntos (xo,yo); (x1,y1);;(xn,yn) es la formula:


donde

LN , K

P N ( x )= y k L N , K
k=0

es el polinomio coeficiente de Lagrange para los nodos xo,

x1,..xn definido por:

LN , K ( x ) =

( xx o )( xx k1)( xx k +1 ) . . ( xx N )
( x k x o )( x k x k1 )( x k x k+1 ) ( x k x N )

Donde se sobrentiende que los factores


Para un k fijo;

( xx k )

( x k x k )

no aparecen!

LN , K ( x j )=1 si j=k y LN , K ( x j )=0 si j 0

Error:

E N (x)=

( xx o ) ( xx 1 ) ( xx N ) f N +1 (c )
(N +1)!

; para c [a , b]

POLINOMIO INTERPOLADOR DE NEWTON


Hay ocasiones en las que resulta til
aproximantes

P1 ( x ) ; P 2 ( x ) ; .. PN (x)

construir

varios

polinomios

y despus elegir el ms adecuado a

nuestras necesidades unos de los inconvenientes del polinomio interpolador


de Lagrange es que no hay relacin entre la construccin de

PN 1 ( x )

PN ( x ) , cada polinomio debe construirse individualmente y el trabajo


necesario
muchas

para cualquier polinomio de grado elevado

requiere hacer
operaciones.

Polinomio de newton con N centros

PN ( x )=P N1 ( x ) + aN ( x x0 ) ( xx 1 ) ( xx 2 ) (xx N )
Teorema (polinomio interpolador de Newton): Supongamos que x0,x1,,xN
son N+1 nmeros distintos en [a,b]. Entonces existe un nico polinomio

PN (x)

de grado menor o igual a N tal que:

f ( x j ) =P ( x j )

para j=0,1,2,,N

La forma de Newton de este polinomio interpolado es:

PN ( x )=a0 +a1 ( xx 0 ) ++ aN ( x x0 ) ( xx 1 ) ( xx N1 )
Siendo

ak

los trminos de la diagonal principal del arreglo matricial que

se obtiene al operar con diferencias finitas.

Das könnte Ihnen auch gefallen