Anda di halaman 1dari 20

UNIVERSIDAD MAYOR DE SAN SIMON

FACULTAD DE CIENCIAS Y TECNOLOGIA

DOCENTE: DR. SORUCO

ESTUDIANTE: VIANCA SAINZ NUEZ

CARRERA: ING QUIMICA

FECHA : 22 -08-2016

COCHABAMBA .BOLIVIA
MATLAB
INTRODUCCION

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, Mac OS X y GNU/Linux .
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
CARACTERISTICAS
Las aplicaciones de MATLAB se desarrollan en un lenguaje de programacin propio.
Este lenguaje es interpretado, y puede ejecutarse tanto en el entorno interactivo, como a
travs de un archivo de script (archivos *.m). Este lenguaje permite operaciones de
vectores y matrices, funciones, clculo lambda, y programacin orientada a objetos.
Grficos e interfaces grficas
MATLAB provee funciones para visualizar datos en 2D y 3D.
Simulink
Simulink es un mdulo que permite la simulacin de sistemas dinmicos a travs de una
interfaz basada en bloques.
Toolboxes
Las funcionalidades de Matlab se agrupan en ms de 35 toolboxes y paquetes de
bloques (para Simulink), clasificadas en las siguientes categoras:2
Limitaciones y alternativas
Durante mucho tiempo hubo crticas porque MATLAB es un producto propietario de
The Mathworks, y los usuarios estn sujetos y bloqueados al vendedor. Recientemente
se ha proporcionado una herramienta adicional llamada MATLAB Builder bajo la
seccin de herramientas "Application Deployment" para utilizar funciones MATLAB
como archivos de biblioteca que pueden ser usados con ambientes de construccin de
aplicacin .NET o Java. Pero la desventaja es que el computador donde la aplicacin
tiene que ser utilizada necesita MCR(MATLAB Component Runtime) para que los
archivos MATLAB funcionen correctamente. MCR se puede distribuir libremente con
los archivos de biblioteca generados por el compilador MATLAB.
Interfaz con otros lenguajes de programacin
MATLAB puede llamar funciones y subrutinas escritas en C o Fortran. Se crea una
funcin envoltorio que permite que sean pasados y devueltos tipos de datos de
MATLAB. Los archivos objeto dinmicamente cargables creados compilando esas
funciones se denominan "MEX-files", aunque la extensin de nombre de archivo
depende del sistema operativo y del procesador.

Antes de comenzar, hagamos algunas consideraciones generales:

MATLAB distingue entre maysculas y minsculas.


La comilla ' es la que, en un teclado estndar, se encuentra en la tecla de la
interrogacin.
Los comentarios deben ir precedidos por % o, lo que es lo
mismo, MATLAB ignora todo lo que vaya precedido por el smbolo %.
La ayuda de MATLAB es bastante til; para acceder a la misma basta
teclear help. Es recomendable usarlo para obtener una informacin ms precisa
sobre la sintaxis y diversas posiblidades de uso de los comandos.

1. CLASE 1
clear all %nos borra todas la variables
clc % nos borra el comand windows
disp('Introduccion a MATLAB') % el comando disp('')nos sirve para
imprimir
%o mostrar en pantalla un mensaje todo lo que esta entre '' (comillas)
A=sqrt(81)%a la varible A le asignamos el valor de sqrt(81)que es raiz
de 81
B=log10(100)%asignamos a B logaritmo base 10 de 100
C=(A+B)^2%elevamos a A y B al cuadrado ^ con este simbolo
disp('PROGRAMACION CON MATLAB')
%sentencia if else
a=input('ingrese valor de a : \n');
b=input('ingrese valor de b : \n');
if(a>b)
disp('a es mayor que b')
elseif(a==b)
disp('a es igual que b')
else
disp('a menor que b')
end
% swtich
e=input('ingrese valor de e: ');
f=input('ingrese valor de f: ');
%disp('seleccione operacion')
g=menu('operaciones','suma','resta','multiplicacion','division');
%comando menu nos sirve para hacer una interfas en pantalla de un menu
de
%multiples opciones a seleccionar
switch g %switch agarra el valor de g y compara y manda al caso
correspondiente
case 1
suma=e+f;
fprintf('la suma es : %d\n', suma)
case 2
resta=e-f;
fprintf('la resta es : %d\n', resta)
case 3
multiplicacion=e*f;
fprintf('la multiplicacion es : %d\n', multiplicacion)
case 4
division=e/f;
fprintf('la division es : %d\n', division)
otherwise
disp('error')
end
%ciclo for
%n=input('secuencia de numeros a imprimir : ');
n=input('secuencia de nombres pps a imprimir : ');
j=0;
for i=1:n
%j=j+1;
%disp(j)
s=input('ingrese nombre : ','s');
x=input('ingrese una edad : ','s');
y=input('ingrese carrera : ','s');
end

LA EJECUCION DEL SCRIPT SE MUESTRA EN COMAND WINDOWS DE MATLAB

Introduccion a MATLAB

A =

B =

C =

121

PROGRAMACION CON MATLAB


ingrese valor de a :
2
ingrese valor de b :
1
a es mayor que b
ingrese valor de e: 3
ingrese valor de f: 2
la suma es : 5
secuencia de nombres pps a imprimir : 5
ingrese nombre : pepe 1
ingrese una edad : 22
ingrese carrera : sistemas
ingrese nombre : pp2
ingrese una edad : 22
ingrese carrera : quimica
ingrese nombre : pp3
ingrese una edad : 44
ingrese carrera : civil
ingrese nombre : pp5
ingrese una edad : 22
ingrese carrera : civil
ingrese nombre : pp6
ingrese una edad : 44
ingrese carrera : civil

2. CLASE 2
clear all
clc
disp('VECTORES')
A=[1 2 3 4 5]%declaramos un vector A
B=[5,4,3,2,1]%otra forma de declarar un vector
disp('operaciones con vectores')
SUMA=A+B
RESTA=A-B
MULTIPLICACION=A.*B%MULTIPLICACION=(a1*b1,a2*b2,....,an*bn)
DIVISION=A./B%DIVISION=(a1/b1,a2/b2,....,an/bn)
POTENCIA=A.^2
POTENCIA=2.^A
POTENCIA=A.^B
disp('comandos')
a=sum(A)%suma los elementos del vector
p=prod(A)%producto de vector A
d=size(A)%dimension del vector A
disp('MANERAS DE CREAR UN VECTOR')
A1=(1:10)%A1 es un vector que inicia en 1 e incremente en 1 hasta 10
A2=(0:2:10)%A2 es un vector que inicia en 0 e incremente en 2 hasta 10
A3=(10:-2:0)%%A3 es un vector que inicia en 10 e decrementa en -2
hasta 0
A4=linspace(1,10,15)%A4 es un vector que inicia en 1 hasta 10 y lo
dividimos
%en 15 partes iguales al vector A4
%Ejemplo tenemos un tiempo de 2 segundos y se quiere hallar los
espacios
%recoridos en los 5 primeros instantes con una velocidad inicial 5m/s
t=linspace(0,2,5)
v0=5
s=v0*t

CLASE 2.1 MATRICES

MATLAB trabaja esencialmente con matrices numricas rectangulares. La manera ms fcil de


entrar matrices pequeas es enumerando los elementos de sta de tal manera que: los
elementos estn separados por blancos comas. los elementos estn cerrados entre
corchetes, [ ]. muestre el final de cada fila con ; (punto y coma). Ejemplo: A = [ 1 2 3; 4 5 6; 7 8
9 ] resultara en la matriz A = 1 2 3 4 5 6 7 8 9 MATLAB guarda esta matriz para utilizarla luego
bajo el nombre de A. Si la matriz a introducir es muy grande se puede utilizar el siguiente
formato: 21 A = [1 2 3 4 5 6 7 8 9] El comando load y la funcin fread pueden leer matrices
generadas en sesiones anteriores generadas por otros programas. Ya que MatLab se basa en
el lgebra de matrices como ejemplo crearemos una matriz. Estas pueden estar formadas por
un slo elementos (escalar), por una fila o una columna (vector) o por una serie de filas y
columnas (matriz propiamente dicha). >>A=1 define A como un escalar de valor 1. Al definir A
automticamente MatLab presenta en pantalla su valor. A = 1 Para no presentar el valor de la
variable creada, debe agregarse punto y coma (;) al final del comando. Despus de crear una
variable, puede presentarse su valor en pantalla escri biendo la variable despus del prompt
(>>). >>A Se pueden redefinir variables, por ejemplo: >>A=[1 2 3] define A como un vector de
tres elementos, A(1)=1, A(2)=2 y A(3)=3. Estos elementos deben separase con espacios en
blanco o comas (,). Para definir una matriz se deben separar las filas con punto y coma (;) o con
retorno (Enter). >>A=[1 2 3; 4 5 6] o >>A=[1 2 3 4 5 6] ambos comandos producen el mismo
efecto: A = 1 2 3 4 5 6

MATRICES
SISTEMAS DE ECUACIONES

SISTEMAS DE ECUACIONES LINEALES Ax=b


introdusca los valores Ax
numero de columnas : 2
numero de renglones : 2
Dato(1,1):1
Dato(1,2):2
Dato(2,1):0
Dato(2,2):-1

A=

1 2
0 -1

introdusca los valores de b


numero de renglones : 2
Dato(1,1):1
Dato(2,1):0
b=
1
0
simple eliminacion gaussiana
Ab =
1 2 1
0 -1 0
s1 =
1 0 1
0 1 0
RESOLUCION Ax=b POR METODO DE LU
L=
1 0
0 1
U=
1 2
0 -1
y=
1
0
x=
1
0
METODO DE MATRIZ INVERSA
invA =
1 2
0 -1

res =
1
0

CLASE 2.1

clear all
clc
disp('MATRICES')
A=[1 2 3;4 5 6;7 8 9]%primera forma de declarar una matriz
B=[9,8,7;6,5,4;3,2,1]%segunda forma de declarar una matriz
disp('operaciones con matrices')
suma=A+B
resta=A-B
multiplicacion=A.*B%multiplicamos termino por termino
multiplicacion=A*B%multiplicacion de matrices
division=A./B
disp('comandos')
d=size(A)%dimension de la matriz A
d1=inv(A)%el comando inv nos devuelve la inversa de A(por gauss)
d2=det(A)%el comando det nos devuelve la determinante de A
d3=A'%la traspuesta de la matriz A
d4=rank(A)%el comando rank nos devuelve el rango de la matriz A
d5=diag(A)%el comando diag nos devuelve la diagonal de la matriz A
[L U]=lu(A)%el comando lu nos devuelve la matriz L y U
ones(3)
ones(3,5)
zeros(3)
zeros(3,5)
eye(3)
eye(3,5)
disp('UN SCRIPT PARA INTRODUCIR UNA MATRIZ DESDE TECLADO')
col=input('numero de columnas : ');
ren=input('numero de renglones : ');
for r=1:ren
for c=1:col
s=['Dato(' num2str(r) ',' num2str(c) '):'];
m(r,c)=input(s);
end
end
m
CLASE 2.3
clear all
clc
format rat
disp('SISTEMAS DE ECUACIONES LINEALES Ax=b')
disp('introdusca los valores Ax')
%Resolucion por el metodo de matriz ampliada
col=input('numero de columnas : ');
ren=input('numero de renglones : ');
for r=1:ren
for c=1:col
s=['Dato(' num2str(r) ',' num2str(c) '):'];
A(r,c)=input(s);
end
end
A
disp('introdusca los valores de b ')
col=1;
%col=input('numero de columnas : ');
ren=input('numero de renglones : ');
for r=1:ren
for c=1:col
s=['Dato(' num2str(r) ',' num2str(c) '):'];
b(r,c)=input(s);
end
end
b
disp('simple eliminacion gaussiana')
Ab=[A b]
s1=rref(Ab)
disp('RESOLUCION Ax=b POR METODO DE LU')
%descomponemos la matriz A en Lower y Uper
[L U]=lu(A)
y=L\b
x=U\y
disp('METODO DE MATRIZ INVERSA')
%hallamos la matriz inversa de A
invA=inv(A)%invA contiene el valor de inversa de la matriz A
%luego multipicamos la matriz invA con b
res=invA*b

3. CLASE 3

Se puede trabajar con polinomios: basta tener en cuenta que un polinomio no


es ms que un vector. El orden de los coeficientes es de mayor a menor grado,
por ejemplo:
>>p=[1 0 2 0 3] % Polinomio x^4+2*x^2+3

p =
1 0 2 0 3

>>q=[2 1 0] % Polinomio 2*x^2+x

q =
2 1 0

MATLAB tiene funciones especficas para polinomios como:


>>polyval(p,-1) % Evaluacin del polinomio x^4+2x^2+3 en x=-1

ans =
6

>>pro=conv(p,q) % Producto de los polinomios p y q

pro =
2 1 4 2 6 3 0

>>deconv(pro,p) % Cociente entre pro y p; obviamente el resultado


es q

ans =
2 1 0

>>roots(pro) % Races del polinomio pro

ans =
0
0.6050+1.1688i
0.6050-1.1688i
-0.6050+1.1688i
-0.6050-1.1688i
-0.5000

>>poly([i -i 1/2 pi]) % Polinomio mnico que tiene por races a los
% nmeros i, -i, 0.5 y pi

ans =
1.0000 -3.6416 2.5708 -3.6416 1.5708

clear, clc
syms x y
'1. representacion de un polinomio'
y=5*x^3+x^2+3*x+4
p=[5 1 3 4]
%devuelve las races del polinomio representado por p como un vector
%columna
r=roots(p)
'2. Evaluacion de un polinomio'
y=5*x^3+x^2+3*x+4
p=[5 1 3 4]
xi=2.2;
%devuelve el valor de un polinomio de grado n evaluada en x .
yi=polyval(p,xi)
'3.- hallar el polinomio de interpolacion por los puntos'
x=[1.1 2.5 3.6 5.2]
y=[3.665, 4.367, 4.367, 2.017]
%devuelve los coeficientes de un polinomio p(x) de grado n que es un
mejor
%ajuste (en un sentido de mnimos cuadrados) para los datos en y
a=polyfit(x,y,length(x)-1)
'4.- INTERPOLACION Hallar f(0.27) f(0.53) f(0.65 f(0.77 mediante el
polinomio'
'de interpolacion por los puntos'
x=[0.0 0.25 0.5 0.75 1.0];
y=[0-916 0.8109 0.6931 0.5596 0.4055];
xi=[0.27 0.53 0.65 0.77];
%especifica un mtodo de interpolacin alternativa: 'nearest' , 'next'
,
%'previous' , 'linear' , 'spline' , 'pchip' , o 'cubic' . El mtodo
por defecto es 'linear' .
yi=interp1(x,y,xi,'cubic');
[xi,yi]
'GRAFICOS BIDIMENCIONALES'
'5.-Graficar los puntos '
x=[3 5 2 1 4], y=[2 0 3 4 1];
subplot(2,2,1);
plot(x,y)
'6.-Graficar la funcion sin(x)'
x=[-10:0.2:10]; y=sin(x);
subplot(2,2,2);
plot(x,y)
grid
xlabel('x'); ylabel('y')
'7.-Grafica de 2 la funciones y=sin(x) z=cos(x);'
x=0:pi/20:4*pi;
y=sin(x); z=cos(x);
subplot(2,2,3);
plot(x,y,'.',x,z,'-')

5.- GRAFICA DE PUNTOS 6.-Graficar la funcion sin(x)


4 1

3 0.5

2 0
y

1 -0.5

0 -1
1 2 3 4 5 -10 -5 0 5 10
x
7.-Grafica de 2 la funciones y=sin(x) z=cos(x)
1

0.5

-0.5

-1
0 5 10 15
grid
clc,clear
'8.-Graficar la funcion y=cos(x).*cosh(x)+1'
x=-5:0.1:5;
y=cos(x).*cosh(x)+1;
subplot(3,2,1);
plot(x,y);
title('Graficar la funcion y=cos(x).*cosh(x)+1')
grid
xlabel('x'); ylabel('y=cos(x)*cosh(x)+1')
'9.-GRAFICAS de interpolacion con POLINOMIOS DE 5 Y 10 GRADO'
'En el intervalo [0,1] con un paso de 0.1'
x=0:10;
xx=0:0.1:10;
y=sin(x);
p5=polyfit(x,y,5);
p10=polyfit(x,y,10);
subplot(3,2,2);
plot(x,y,'o',xx,polyval(p5,xx),'-',x,y,'y',xx,polyval(p10,xx),'-')
title('GRAFICAS de interpolacion')
'10.-GRAFICA DE UN spline cubico 3 y 5 puntos'
x=[2 3 5]; y=[1 0 4];
xx=2:0.1:5;
subplot(3,2,3);
plot(xx,csapi(x,y,xx),'k-',x,y,'bo'),grid
title('spline con 3 puntos')
'12.-APLICACION DEL SPLINE grafica de una pieza'
x1=[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2];
y1=[0 0.4 0.8 1 1.4 1.8 2 2.25 5];
x2=[2 2.2 2.5 2.8 3];
y2=[5 4.5 4 3.5 3];
x3=[-2 -1 -0.5 0 1 1.5 2 2.5 3];
y3=[0 -0.2 -0.5 -1 0 1 1.5 1.6 3];
plot(x1,y1,'x',x2,y2,'-',x3,y3,'.')
xx1=-2:0.1:2;
xx2=2:0.1:3;
xx3=-2:0.1:3;
subplot(3,2,4);
plot(xx1,csapi(x1,y1,xx1),'k-',x1,y1,'ro',xx2,csapi(x2,y2,xx2),'k-
',x2,y2,'ro',xx3,csapi(x3,y3,xx3),'k-',x3,y3,'ro')
title('APLICACION DEL SPLINE grafica de una pieza')
'13.- ECUACION NO LINEAL'
'0.5*exp(x/3)-sin(x)=0'
'GRAFICA de la Ecuacion'
x=-5:0.1:10;
f=0.5*exp(x/3)-sin(x);
subplot(3,2,5);
plot(x,f)
title('GRAFICA de la Ecuacion')
grid
'----------------------------------'
'solucion'
x=-5:0.1:10;
%inline construye una funcin de objeto en lnea a partir de la
expresin
f=inline('0.5*exp(x/3)-sin(x)')
%) trata de encontrar un punto x , donde fun(x) = 0 . Esta solucin es
%donde fun(x) cambia la muestra fzero no puede encontrar una raz de
una funcin como x^2 .
fzero(f,0.5)
'14.-graficar la funcion '
'0.5*e^3-sin(x)=0'
x=[0:0.2:2];
y=[-0.3:0.2:0.3];
y=0.5*exp(x/3)-sin(x);
subplot(3,2,6);
plot(x,y)
title('graficar la funcion 0.5*e^3-sin(x)=0')
grid

GRAFICAMOS

Graficar la funcion y=cos(x).*cosh(x)+1 GRAFICAS de interpolacion


40 2
y=cos(x)*cosh(x)+1

20 1

0 0

-20 -1
-5 0 5 0 2 4 6 8 10
x
APLICACION DEL SPLINE grafica de una pieza
6 6

4 4

2 2

0 0

-2 -2
-2 -1 0 1 2 3 -2 -1 0 1 2 3

GRAFICA de la Ecuacion graficar la funcion 0.5*e3-sin(x)=0


15 0.6

10 0.4

5 0.2

0 0

-5 -0.2
-5 0 5 10 0 0.5 1 1.5 2

4. ANALISIS NUMERICO

FUNCION DE NEWTON

%function newton(f,x0,tol)
function newton
clear all
clc
f=input('ingrese la funcion : ','s');
x0=input('ingrese valor inivia de x : ');
tol=input('ingrese la tolerancia : ');
syms x;
df=diff(f,'x');
f=inline(f)
df=inline(char(df));
fprintf('\n it x f(x)\n')
i=0;
fprintf('%3.0f%f10.10f%10.10f\n',i,x0,f(x0))
x1=x0-f(x0)/df(x0);
while abs(x0-x1)>tol
i=i+1;
fprintf('%3.0f%f10.10f%10.10f\n',i,x0,f(x0))
x0=x1;
x1=x0-f(x0)/df(x0);
end
fprintf('\n la aproximacion de la raiz es: %3.10f\n\n',x1)
%newton('0.5*exp(x/3)-sin(x)',0,0.000001)

EJECUTANDO EL PROGRAMA

ingrese la funcion : 0.5*exp(x/3)-sin(x)


ingrese valor inivia de x : 0
ingrese la tolerancia : 0.0000001

f=

Inline function:
f(x) = 0.5*exp(x/3)-sin(x)

it x f(x)
00.00000010.10f0.5000000000
10.00000010.10f0.5000000000
20.60000010.10f0.0460589057
30.67407710.10f0.0017921320
40.67720710.10f0.0000034016

la aproximacion de la raiz es: 0.6772128900

SIMPSON SIMPLE

clc;
clear;
fprintf('\t\tFORMULA DE SIMPSON SIMPLE\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('ingrese el limite superior de la funcion\n');
a=input('ingrese el limite inferior de la integral\n');
h=(b-a)/2;
x=a; f=eval(funcion); x=b; f=f+eval(funcion);
x=a+h; f=f+ 4*(eval(funcion));
f=(h/3)*f;
fprintf('El valor aproximado de la integral es: %10.15f\n\n',f)

Ejecutando el codigo en el comand windows

FORMULA DE SIMPSON SIMPLE


ingrese la funcion
f(x)=((3*x^2)/(log(2)+x^2))
ingrese el limite superior de la funcion
3
ingrese el limite inferior de la integral
-1
El valor aproximado de la integral es: 7.763143108245299

SIMPSON 3/8
clc; clear;
fprintf('\t\tFORMULA DE LOS TRES OCTAVOS DE SIMPSON\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('ingrese el limite superior de la funcion\n');
a=input('ingrese el limite inferior de la integral\n');
h=(b-a)/3;
x=a;
f=eval(funcion);x=a+h; f=f+3*(eval(funcion));
x=a+2*h; f=f+3*(eval(funcion)); x=b;
f=f+eval(funcion);
f=(3*h/8)*f;
fprintf('El valor aproximado de la integral es: %10.15f\n\n',f)

Ejecutando el codigo en el comand windows

FORMULA DE LOS TRES OCTAVOS DE SIMPSON


ingrese la funcion
f(x)=((3*x^2)/(log(2)+x^2))
ingrese el limite superior de la funcion
5
ingrese el limite inferior de la integral
1
El valor aproximado de la integral es: 10.616622107971946

METODO TRAPECIO SIMPLE

clc; clear;
fprintf('\t\tTRAPECIO SIMPLE\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('ingrese el limite superior de la integral\n');
a=input('ingrese el limite inferior de la integral\n');
h=b-a;
x=a;
f=eval(funcion); x=b;
f= (f+eval(funcion))*(h/2);
fprintf('El valor aproximado es: %10.15f\n\n',f)

Ejecutando el codigo en el comand windows


TRAPECIO SIMPLE
ingrese la funcion
f(x)=((3*x^2)/(log(2)+x^2))
ingrese el limite superior de la integral
2
ingrese el limite inferior de la integral
-1
El valor aproximado es: 6.493151887447167

METODO DE RUNGE KUTTA

function rk45
disp('metodo de runge kutta')
clear all
clc
epsilon = 0.00001;
h = 0.2;
t = 0;
w = 0.5;
i = 0;
fprintf('paso %d: t = %6.4f, w = %18.15f\n', i, t, w)
while t<2
h = min(h, 2-t);
k1 = h*f(t,w);
k2 = h*f(t+h/4, w+k1/4);
k3 = h*f(t+3*h/8, w+3*k1/32+9*k2/32);
k4 = h*f(t+12*h/13, w+1932*k1/2197-7200*k2/2197+7296*k3/2197);
k5 = h*f(t+h, w+439*k1/216-8*k2+3680*k3/513-845*k4/4104);
k6 = h*f(t+h/2, w-8*k1/27+2*k2-3544*k3/2565+1859*k4/4104-
11*k5/40);
w1 = w + 25*k1/216+1408*k3/2565+2197*k4/4104-k5/5;
w2 = w + 16*k1/135+6656*k3/12825+28561*k4/56430-9*k5/50+2*k6/55;
R = abs(w1-w2)/h;
delta = 0.84*(epsilon/R)^(1/4);
if R<=epsilon
t = t+h;
w = w1;
i = i+1;
fprintf('paso %d: t = %6.4f, w = %18.15f\n', i, t, w)
h = delta*h;
else
h = delta*h;
end
end
%%%%%%%%%%%%%%%%%%
function v = f(t,y)
v = y-t^2+1;

Ejecutando el codigo en el comand windows

paso 0: t = 0.0000, w = 0.500000000000000


paso 1: t = 0.2000, w = 0.829299076923077
paso 2: t = 0.4353, w = 1.287432405787216
paso 3: t = 0.6766, w = 1.827289794651998
paso 4: t = 0.9264, w = 2.448301479233138
paso 5: t = 1.1902, w = 3.153049280338359
paso 6: t = 1.4806, w = 3.955581050460808
paso 7: t = 1.8537, w = 4.952039512278185
paso 8: t = 2.0000, w = 5.305486816572747

SISTEMAS DE ECUACIONES

SISTEMAS DE ECUACIONES LINEALES Ax=b


introdusca los valores Ax
numero de columnas : 2
numero de renglones : 2
Dato(1,1):1
Dato(1,2):2
Dato(2,1):0
Dato(2,2):-1

A=

1 2
0 -1

introdusca los valores de b


numero de renglones : 2
Dato(1,1):1
Dato(2,1):0
b=
1
0
simple eliminacion gaussiana
Ab =
1 2 1
0 -1 0
s1 =
1 0 1
0 1 0
RESOLUCION Ax=b POR METODO DE LU
L=
1 0
0 1
U=
1 2
0 -1
y=
1
0
x=
1
0
METODO DE MATRIZ INVERSA
invA =
1 2
0 -1

res =
1
0
Ejecucion de Scripts en el Comand Windons

Introduccion a MATLAB

A=

B=

C=

121

PROGRAMACION CON MATLAB


ingrese valor de a :
3
ingrese valor de b :
2
a es mayor que b
Ejemplo mini calculadora
ingrese valor de e: 23
ingrese valor de f: 11
la multiplicacion es : 253
secuencia de nombres pps a imprimir : 2
ingrese nombre : pepe
ingrese una edad : 22
ingrese carrera : quimica
ingrese nombre : pepe2
ingrese una edad : 23
ingrese carrera : sistemas
>>
VECTORES
A=
1 2 3 4 5
B=
5 4 3 2 1
operaciones con vectores
SUMA =
6 6 6 6 6
RESTA =

-4 -2 0 2 4
MULTIPLICACION =
5 8 9 8 5
DIVISION =
0.200000000000000 0.500000000000000 1.000000000000000 2.000000000000000
5.000000000000000
POTENCIA =
1 4 9 16 25
POTENCIA =
2 4 8 16 32
POTENCIA =
1 16 27 16 5
comandos
a=
15
p=
120
d=
1 5
MANERAS DE CREAR UN VECTOR
A1 =
1 2 3 4 5 6 7 8 9 10
A2 =
0 2 4 6 8 10
A3 =
10 8 6 4 2 0
A4 =
Columns 1 through 8
1.000000000000000 1.642857142857143 2.285714285714286 2.928571428571429
3.571428571428572 4.214285714285714 4.857142857142858 5.500000000000000
Columns 9 through 15
6.142857142857143 6.785714285714286 7.428571428571429 8.071428571428571
8.714285714285715 9.357142857142858 10.000000000000000
t=
0 0.500000000000000 1.000000000000000 1.500000000000000
2.000000000000000
v0 =
5
s=
0 2.500000000000000 5.000000000000000 7.500000000000000
10.000000000000000

>>

Anda mungkin juga menyukai