Académique Documents
Professionnel Documents
Culture Documents
FECHA : 22 -08-2016
COCHABAMBA .BOLIVIA
MATLAB
INTRODUCCION
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
Introduccion a MATLAB
A =
B =
C =
121
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
MATRICES
SISTEMAS DE ECUACIONES
A=
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
p =
1 0 2 0 3
q =
2 1 0
ans =
6
pro =
2 1 4 2 6 3 0
ans =
2 1 0
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,'-')
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
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
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
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
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)
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)
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)
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;
SISTEMAS DE ECUACIONES
A=
1 2
0 -1
res =
1
0
Ejecucion de Scripts en el Comand Windons
Introduccion a MATLAB
A=
B=
C=
121
-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
>>