Sei sulla pagina 1di 5

MATLAB

Objetivo generales:

Aprender a programar en la herramienta de Matlab programas de


metodos numericos con el fin de acortar el tiempo de su resolucion y
para poder usarlo para obtener valores mas exactos.

Objetivos especficos:

Realizar el programa de Newton a 3 variables usando un archivo.m que


pueda resolver Gauss.
Realizar una programa para resolver una integral doble apartir de la
formula de trapecios o Simpson.

Marco terico:

MATLAB
Matlab (abreviatura de MATrix LABoratory, "laboratorio de matrices") es una herramienta
de software matemtico que ofrece un entorno de desarrollo integrado (IDE) con un
lenguaje de programacin propio (lenguaje M). Est disponible para las
plataformas Unix, Windows y Mac OS X.
Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin
de datos y funciones, la implementacin de algoritmos, la creacin de interfaces de usuario
(GUI) y la comunicacin con programas en otros lenguajes y con otros
dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que
expanden sus prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y
GUIDE (editor de interfaces de usuario - GUI). Adems, se pueden ampliar las
capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con
los paquetes de bloques (blocksets).
Es un software muy usado en universidades y centros de investigacin y desarrollo. En los
ltimos aos ha aumentado el nmero de prestaciones, como la de programar
directamente procesadores digitales de seal o crear cdigo VHDL.

REGLA DEL TRAPECIO COMPUESTO

Ilustracin de la regla del trapecio compuesta

La regla del trapecio compuesta o regla de los trapecios es una forma de aproximar una
integral definida utilizando n trapecios. En la formulacin de este mtodo se supone que f es
continua y positiva en el intervalo [a,b]. De tal modo la integral definida
representa
el rea de la regin delimitada por la grfica de f y el eje x, desde x=a hasta x=b. Primero se divide
el intervalo [a,b] en n subintervalos, cada uno de ancho

Despus de realizar todo el proceso matemtico se llega a la siguiente frmula:

Donde

y n es el nmero de divisiones.

La expresin anterior tambin se puede escribir como:

Programas
-Newton a 3 variables
function newton_3v(x0,d)
epsilon=0.5*10^(-d);
bandera=1;
contador=1;
%Funcin f1
syms x
syms y
syms z
%input(f1c)
f1c='x^2+y^2+z^2-1';
f1_x=diff(f1c,x,1);
f1_y=diff(f1c,y,1);
f1_z=diff(f1c,z,1);
f1=inline(f1c,'x','y','z');
f1x=inline(char(f1_x),'x','y','z');
f1y=inline(char(f1_y),'x','y','z');

f1z=inline(char(f1_z),'x','y','z');
%Funcin f2
%input(f2c)
f2c='x+y+z-7/5';
f2_x=diff(f2c,x,1);
f2_y=diff(f2c,y,1);
f2_z=diff(f2c,z,1);
f2=inline(f2c,'x','y','z');
f2x=inline(char(f2_x),'x','y','z');
f2y=inline(char(f2_y),'x','y','z');
f2z=inline(char(f2_z),'x','y','z');
%Funcin f3
%input(f3c)
f3c='x^2-z^2-9/25';
f3_x=diff(f3c,x,1);
f3_y=diff(f3c,y,1);
f3_z=diff(f3c,z,1);
f3=inline(f3c,'x','y','z');
f3x=inline(char(f3_x),'x','y','z');
f3y=inline(char(f3_y),'x','y','z');
f3z=inline(char(f3_z),'x','y','z');
%Grfica de f1 y f2
%ezplot(f1,[-a,a,-a,a])
%hold on
%ezplot(f2,[-a,a,-a,a])
disp('_______________________________________________________________');
disp('Iteracion
x_1
x_2
x_3
norma
epsilon');
disp('_______________________________________________________________');

while bandera
%Construccion del Jacobiano
J(1,1)=f1x(x0(1),x0(2),x0(3));
J(1,2)=f1y(x0(1),x0(2),x0(3));
J(1,3)=f1z(x0(1),x0(2),x0(3));
J(2,1)=f2x(x0(1),x0(2),x0(3));
J(2,2)=f2y(x0(1),x0(2),x0(3));
J(2,3)=f2z(x0(1),x0(2),x0(3));
J(3,1)=f3x(x0(1),x0(2),x0(3));
J(3,2)=f3y(x0(1),x0(2),x0(3));
J(3,3)=f3z(x0(1),x0(2),x0(3));
%Construccin del lado derecho
b(1)=-f1(x0(1),x0(2),x0(3));
b(2)=-f2(x0(1),x0(2),x0(3));
b(3)=-f3(x0(1),x0(2),x0(3));
%Solucin del sistema J*(x-x0)=b
z1=gauss(J,b');
%Clculo de x1

x1=z1+x0;
norma=norm(x1-x0);
if norma<epsilon
bandera=0;
else
x0=x1;
contador=contador+1;
end
% plot(x1(1),x1(2),'ro')
fprintf('%10.0f
%12.8f
%12.8f
%12.8f
%12.8f\n',contador,x1(1),x1(2),x1(3),norma,epsilon)
espera=input('Pulse ENTER]');
end
disp('_______________________________________________________________');
hold off
x1

-Gauss
function x=gauss(a,b)
clc
a=[a b];
m=size(a,1);
for j=1:m-1
%maximo en la columna j
Lugar_maximo=j;
maximo=abs(a(j,j));
for L=j+1:m
if abs(a(L,j))>maximo
maximo=abs(a(L,j));
Lugar_maximo=L;
end
end
%Intercambio de filas si es necesario
if Lugar_maximo ~= j
for k=j:m+1
tempo=a(j,k);
a(j,k)=a(Lugar_maximo,k);
a(Lugar_maximo,k)=tempo;
end
end
%Aniquilacin a la fila i se suma la fila j por d
for i=j+1:m
d=-a(i,j)/a(j,j);
for k=j:m+1
a(i,k)=a(i,k)+d*a(j,k);
end
end
end
%Sustitucin hacia atrs
for i=m:-1:1
s=0;
for k=i+1:m

s=s+a(i,k)*x(k);
end
x(i)=(a(i,m+1)-s)/a(i,i);
end

-Trapecios
function I=T(a,b,n)
h=(b-a)/n;
%s1=f(a)+f(b);
s=0;
for k=1:n-1
s=s+f(a+k*h);
end
s1=f(a)+f(b)+2*s;
I=s1*h/2
function y=f(x)
y=1/(1+x^2);

-Simpson
function I=S(a,b,n)
h=(b-a)/n;
%s1=f(a)+f(b);
si=0;
sp=0;
for k=1:n/2
si=si+f(a+(2*k-1)*h);
end
for k=1:(n-2)/2
sp=sp+f(a+(2*k)*h);
end
s=f(a)+f(b)+4*si+2*sp;
I=s*h/3
function y=f(x)
y=1/(1+x^2);

Conclusiones
-Se cumplieron los objetivos planteados, pudiendo programar los programas
apratir de o estudiado en clases.
-Se realizaron sus respectivas pruebas y a partir de estas se comparo los
resultados obtenidos manualmente con los obtenidos apartir del programa.
-Se pudo validar las respuestas encontradas manualmente.

Potrebbero piacerti anche