curso de matlab (algebra ii)_docx
TRANSCRIPT
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
1
MATLABAPLICADO A ALGEBRA II
1.- Introducción a MATLAB
% Serie de Comandos
% Comando para comentario
clc Comando para borrar ventana de comando
clear Comando para borrar variables
who Comando Quien/es son variable/s
‘ Comando traspuesta
i o j Comando Imaginario
sqrt Comando raíz
log Comando logarítmico
exp Comando exponencial
dot Comando producto escalar
cross Comando producto vectorial
% Números
a=25 ans= 25
c= 97 ans = 97
2*3^2+(5-2)*3 ans = 27
10/2*(3^2)+5-2*3 ans = 17
(10*2)+(6-2) ans = 24
(5e-001*69)/(5+2e2) ans = 1.6829e-001
factorial(5) ans = 120
factor(45) ans = 3 3 5
sin (30*pi/180) ans = 1/2
log(20) ans = 2.9957
exp(5) ans = 148.4132
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
2
Realizar las siguientes operaciones aritméticas:
( / ). ans= 2.7941(1 − 0.25) / + (4/81) / ans= 5.3660
√256 − (1/25) ans= 0 + 3i
( ) + √2 − ans = -1.8780 – 8.3436i
% Formatos
format short Resultado con cuatro decimales
format long Resultado con dieciséis decimales
format short g Resultado con un decimal
format long g Resultado con un decimal
format short e Resultado con cuatro decimales mas la potencia 10
format long e Resultado con dieciséis decimales mas la potencia 10
format bank Resultado con dos decimales
format rat Resultado en valores fraccionarios
2.- Variables Vectoriales
% Variables Vectoriales
a = [1 2 3 4 6] Vector Fila
b = [2; 4; 5; 6; 8] Vector Columna
c = [1:10] Vector Fila Correlativo
d = [1: 2 :20] Vector Fila Correlativo de 2 en 2
e = [1: 3 :30] Vector Fila Correlativo de 3 en 3
t = linspace (1,30,6) Vector Rango Determinado
f = logspace (1,30,6) Vector Rango Determinado logarítmico
u = a’ Vector Traspuesta
v = [5:20]’ Vector Columna Correlativo
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
3
% Recuperación de Variables
g = [3 6 5 -5 8 7]
w = g(4)
w = -5
h = [2 3 4 5 6 7 8 9 11 12 13 ]
j = h(1:2:11)
j = 2 4 6 8 11 13
a = [1 2 3 2 5 -8 -1 -4 -8]
b = a(1:3:9)
b = 3 5 -1 -8
% Cambio de Variable
g = [3 6 5 -5 8 7]
g(3) = 2
g = 3 6 2 -5 8 7
h = [2 3 4 5 6 7 8 9 11 12 13 ]
h(2,5,7)= -3
h = 2 -3 4 5 -3 7 -3 9 11 12 13
i = [1 2 3 2 5 -8 -1 -4 -8 4 7 3 2 -5 -7]
i(1:3:15)= 0
i = 1 2 0 2 5 0 -1 -4 0 4 7 0 2 -5 0
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
4
3.- MATLAB aplicado a Algebra Lineal
%Matrices
A = [2 3 4; 3 5 -1; -3 -5 -8] Matriz cuadrática 3 x 3
B = [-1 5 4; 6 -1 8; 1 -1 3] Matriz cuadrática 3 x 3
C = A + B Suma de dos Matrices
D = C – A Resta de dos matrices
inv(A) Inversa de una Matriz
det(A) Determinante de una Matriz
eye(n) Crea la matriz Identidad de orden n
[L U] = lu(B) Factorización LU
[Q R] = qr(C) Factorización QR
[L U P] = lu(D) Factorización aplicado a la Permutación
H = B’ Matriz Traspuesta
rank(A) Rango de la Matriz
[val,vec]=eig(A) Auto valor y Auto vector de una Matriz
expm(A) Valor exponencial de una Matriz
poly(A) Polinomio característico de una Matriz
roots(poly) Raíces del Polinomio de la Matriz
svd(A) Valor singular de una Matriz
triu(A) Matriz Triangular Superior
tril(B) Matriz Triangular Inferior
trace(C) Suma de la Diagonal Principal
zeros(3,2) Genera una Matriz nula de 3 filas, 2 columnas
zeros(4) Genera una Matriz nula Cuadrática 4 x 4
ones(3,5) Genera una Matriz 3 filas, 5 columnas
ones(5) Genera una Matriz Cuadrática de 5 x 5
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
5
4. Uso de comandos en MATLAB para Algebra Lineal
COMANDO APLICACION
expm(A) Calculada a través de autovalores
expm1(A) Calculada a través de aproximantes de Padé
expm2(A) Calculada a través de series de Taylor
expm3(A) Calculada a través de la condición de la matriz de autovectores
logm(A) Logaritmo neperiano de la matriz A
sqrtm(A) Raíz cuadrada de la matriz cuadrada A
transpose(A) Matriz transpuesta de A
inv(A) Matriz inversa de la matriz cuadrada A. (A-1)
det(A) Determinante de la matriz cuadrada A
rank(A) Rango de la matriz A
trace(A) Suma de los elementos de la matriz A
svd(A) Raices cuadradas de los autovalores de la matriz A
rcond(A) Reciproco de la condición de la matriz A
norm(A) Norma de A (mayor valor singular de la matriz A)
norm(A,1) 1 – norma de A (mayor suma de las columnas de A)
norm(A,inf) Norma infinita de A (mayor suma de las columnas de A)
subspace(A,B) Si A y B son vectores da el angulo formado por ambos
rref(A) Matriz reducida escalonada de Gauss_Jordan por filas de A
(A)^p Matriz elevada a la potencia escalar p
p^(A) Escalar p elevado a la matriz A
eig(A) Halla los autovalores de la matriz cuadrada de A
[V,D]=eig(A) D son autovalores de A y V son autovectores de A (A*V=V*D)
eig(A,B) Devuelve un vector con los autovalores generalizados de las matrices
cuadradas A y B. Son raices del polinomio en λdet(λ*C-A)
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
6
balance(A) Calcula la matriz B balanceada de la matriz A. Su uso esencial es aproximar
los autovalores de A cuando son difíciles de calcular.
S=sparse(A) Convierte la matriz disperse de A, a la completa de S
A=full(S) Convierte la matriz dispersa S en la matriz completa A
(i,j)=find(A) Devuelve los índices de filas y columnas no cero de la matriz A
B=spdiags(A,d) Construye la matriz dispersa cuya diagonal son los elementos d
A=speye(m,n) Construye la matriz dispersa identidad (m x n)
A=speye(n) Construye la matriz dispersa identidad cuadrada de orden n
R=sprank(A) Da el rango estructural de la matriz dispersa de A
N=nnz(A) Da el número de elementos no nulos de la matriz dispersa de A
N=condest(A) Devuelve la 1ª norma de la matriz dispersa de A
M=normest(A) Devuelve le 2ª norma de la matriz dispersa de A
issparse(A) Devuelve 1 si la matriz A es dispersa y 0 en otro caso
spy(A) Grafica el patrón de dispersión de la matriz A
svds(A) Da los 5 mayores valores singulares de A
[L U]=luinc(A) Factorización LU incompleta de A
C=cholinc(A) Factorización incompleta de cholesky de A
H=handamard(n) Matriz con valores 1 o -1 tal que H’*H=n*eye(n)
P=pascal(A) Matriz de pascal de orden simétrica
R=rosser(A) Matriz 8*8 con un autovalor doble, otro nulo, tres casi iguales y 2 opuestos
C=compan(P) Matriz del polinomio de coeficientes P
colpace(A) Devuelve una base para las columnas de A
hess(A) Devuelve la matriz de Hessenberg H
[V, J]=jordan(A)Halla la matriz canonica de Jordan J de la matriz A y la matriz de paso V cuyas
columnas son los autovectores de A cumpliéndose que V-1*A*V=J
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
7
% Funciones Matriciales (aplicación del editor)
A = [3 2 5; 7 1 8] = 2 x 3
B = [-1 -1 0 5; 3 2 4 -3; -5 -2 -1 7] = 3 x 4
C = [3 2 -1; -1 3 -5; 3 5 7; 8 8 8] = 4 x 3
D = [3 2 5 1 2; 3 -1 -3 4 5; 1 -2 -3 4 5] = 3 x 5
((A * B) * (C * D)) (((A * B) * C) * D)
2 x 3 3 x 4 * 4 x 3 3 x 5 2 x 3 3 x 4 * 4 x 3 * 3 x 5
2 x 4 * 4 x 5 2 x 4 * 4 x 3 * 3 x 5
2 x 5 2 x 3 * 3 x 5
2 x 5
2 x 3 x 4 + 4 x 3 x 5 + 2 x 4 x 5 = 124seg. 2 x 3 x 4 + 2 x 4 x 3 + 2 x 3 x 5 = 78seg.
EJEMPLO: Producto vectorial y matricialSuponga que un fabricante produce cuatro artículos. Su demanda está da por el vector de
demanda d=[30 20 40 10] (una matriz de 1x4). El precio por unidad que recibe el fabricante por los
artículos está dado por el vector de precios p=[$20;$15;$18;$40] (una matriz de 4x1). Si se
cumple la demanda, ¿Cuánto dinero recibirá el fabricante?
>> d=[30 20 40 10];
>> p=[20;15;18;40];
>> Total=d*p
>> Total = 2020
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
8
5. Uso de comandos en MATLAB para la Solución de Ecuaciones y Sistemas
COMANDO APLICACION
Solve(‘ecuacion’,’x’) Resuelve la ecuación en la variable x
Solve(‘ec1,..ecn’,’x1,..xn’) Resuelve n ecuaciones simultaneas en la variable x
X=linsolve(A,B) Resuelve A*X=B para una matriz cuadrada A, siendo b y X matrices
x=nnls(A, b) Resuelve A*x=b en el sentido de los mínimos cuadrados (x vector)
P=poly(A) Da el polinomio cuyas raices son el vector A
X=A\B Resuelve el sistema A*X=B
X=A/B Resuelve el sistema X*A=B
X=bicg(A, b) Resuelve el sistema A*x=b por el método de gradientes bi-conjugados
X=bicg(A, b, tol) Resuelve A*x=b especificando la tolerancia
X=bicg(A, b, tol, maxit) Resuelve A*x=b especificando la tolerancia y el num.max. iteraciones
X=bicg(A, b, tol, maxit, M) Resuelve el sistema inv(M)*A*x = inv(M)*b
X=cqs(A, b) Resuelve el sistema A*x=b por método de gradiente conjugado cuadrático
X=cqs(A, b, tol) Resuelve A*x=b especificando la tolerancia
X=cqs(A, b, tol, maxit) Resuelve A*x=b especificando la tolerancia y el num.max. iteraciones
X=cqs(A, b, tol, maxit, M) Resuelve el sistema inv(M)*A*x = inv(M)*b
X=minres(A, b) Resuelve el sistema A*x=b por el método de residual mínimo
X= minres (A, b, tol) Resuelve A*x=b especificando la tolerancia
X= minres(A, b, tol, maxit) Resuelve A*x=b especificando la tolerancia y el num.max. iteraciones
X= minres(A, b, tol, maxit, M) Resuelve el sistema inv(M)*A*x = inv(M)*b
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
9
%Aplicacion de Sistemas de Ecuaciones y Matriciales
%Un sistema con una solución única: − =+ =>> rref([1 -1 7;1 1 5]);>> ans= 6
-1
%Un sistema con un número infinito de soluciones: − =− =>>rref([1 -1 7;2 -2 14])>>ans= (7,0)
(0,-7)(8,1)(1,-6)(3,-4)(-2,-9) número infinito de soluciones
%Un sistema sin solución: − =− =Al multiplicar la primera ecuación por 2 se obtiene 2x-2y=14, esto contradice la segunda ecuación.Entonces, el sistema no tiene solución
Para la resolución de sistemas de ecuación lineal debemos aplicar el método de matrices para
poder obtener su solución dependiente de cuantas variables sean
Si la ecuación es: + =+ = −>> A = [2 3; 5 4];
>> B = [5 -2]’;
>> C = inv(A)*B
>> ans = −3.71434.1429Si las ecuaciones son:
+ = −+ − =− = −>> D = [2 0 3; 1 1 -1; 0 3 -5];
>> E = [-3 2 -4]’;
>> F = D\E
>> ans =7.2000−11.000−5.8000
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
10
Si la ecuación es: { + + − =>> roots([2 11 12 -9])
>> ans =−3.0000−3.00000.5000
Otra forma de resolución de la ecuación puede ser también:
>>solve(‘2 ∗ ^3 + 11 ∗ ^2 + 12 ∗ − 9’,’x’)
>> ans =1/2−3−3
Si las ecuaciones son:+ + =+ =− − =
>>[x , y , z] = solve(‘x+y+z=1’,’3*x+y=3’,’x-2*y-z=0’,’x’,’y’,’z’)
>> ans= 4/5= 3/5= −
Otra forma de resolución de la ecuación puede ser también:
>>A[1 1 1; 3 1 0; 1 -2 -1];
>>B[1 3 0]’;
>>linsolve(A,B)
>> ans= 4/5= 3/5= −
Balanceo de reacciones químicas
Al balancear reacciones químicas tales como la de la fotosíntesis:CO + H O → C H O + OSe buscan enteros positivos x1, x2, x3 y x4 que no tengan un divisor común diferente de 1, de
manera que en x (CO ) + x (H O) → x (C H O ) + x (O )
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
11
C: x1 = 6x3
O: 2x1+ x2= 6x3+2x4
H: 2x2=12x3
>> A =[1 0 -6 0;2 1 -6 -2;0 2 -12 0];
>> B =[0 ;0 ;0];
>> format rat
>> rref([A b])
1 0 0 -1 0
0 1 0 -1 0
0 0 1 -1/6 0
1(CO ) + 1(H O) → 1/6(C H O ) + 1(O )Solución: ( ) + ( ) → ( ) + ( )
%Aplicacion de Polinomios
%Polinomio de Taylor
Sea el Polinomio de Taylor de grado 6 de la f(x) = sin(x), en x = π/2
>> syms x
>> taylor(sin(x),pi/2,6 )
>> ans = (pi/2 - x)^4/24 - (pi/2 - x)^2/2 + 1
Sea el Polinomio de Taylor de grado 8 de la f(x) = x^2 + π/2 *sin(x), en x = 3/ π
>> syms x
>> taylor(x^2 + pi/2 *sin(x),3/pi,8 )
>> ans = pi/2 + (2150310427208497*x)/1125899906842624 + (x2150310427208497/2251799813685248)^2 -4623834933361588875239908999009/5070602400912917605986812821504
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
12
6. Graficos 2D – 3D
COLOR SIMBOLOGIAb azul . punto
g verde - solido
r rojo o circulo
c celeste : punteado
m magenta x signo x
y amarillo -. Segmento punto
k negro + signo +
w blanco -- segmento
* asterisco
s cuadrado
d diamante
v triangulo (abajo)
^ triangulo (ariba)
< triangulo (izq.)
> triangulo (der.)
p pentagrama
h hexagrama
Probar los siguientes comandos
>>fplot('sin(x)',[0 2*pi])>>ezplot('exp(x)')>>ezplot('sin(x)','cos(x)', [0 pi])>>ezplot('x^2-y^2-1')>>ezplot('y/(x^2-y^2-1)')
Texto en una gráficafplot('[sin(x),sin(2*x),sin(3*x)]',[0,2*pi])text(3,0.8, 'y=sin(2x)')text(1,-0.6, 'y=sin(3x)')text(1.5,1, 'y=sin(4x)')
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
13
subplot(1,2,1)x = 0:.1:10;semilogx(x,10.^x)title('Hoja semilogaritmica en x')xlabel('Frecuencia [Hz]')ylabel('Amplitud [db]')grid
subplot(1,2,2)x = 0:.1:10;semilogy(x,10.^x)title('Hoja semilogaritmica en y')xlabel('Frecuencia [Hz]')ylabel('Amplitud [db]')grid
x=linspace(0,4*pi,50);y=sin(x);,z=cos(x);
subplot(2,2,1)plot(x,y,'m')title('Funcion seno')xlabel('Frecuencia')ylabel('Amplitud')grid
subplot(2,2,2)plot(x,z,'--g')title('Funcion coseno')xlabel('Frecuencia')ylabel('Amplitud')grid
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
13
subplot(1,2,1)x = 0:.1:10;semilogx(x,10.^x)title('Hoja semilogaritmica en x')xlabel('Frecuencia [Hz]')ylabel('Amplitud [db]')grid
subplot(1,2,2)x = 0:.1:10;semilogy(x,10.^x)title('Hoja semilogaritmica en y')xlabel('Frecuencia [Hz]')ylabel('Amplitud [db]')grid
x=linspace(0,4*pi,50);y=sin(x);,z=cos(x);
subplot(2,2,1)plot(x,y,'m')title('Funcion seno')xlabel('Frecuencia')ylabel('Amplitud')grid
subplot(2,2,2)plot(x,z,'--g')title('Funcion coseno')xlabel('Frecuencia')ylabel('Amplitud')grid
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
13
subplot(1,2,1)x = 0:.1:10;semilogx(x,10.^x)title('Hoja semilogaritmica en x')xlabel('Frecuencia [Hz]')ylabel('Amplitud [db]')grid
subplot(1,2,2)x = 0:.1:10;semilogy(x,10.^x)title('Hoja semilogaritmica en y')xlabel('Frecuencia [Hz]')ylabel('Amplitud [db]')grid
x=linspace(0,4*pi,50);y=sin(x);,z=cos(x);
subplot(2,2,1)plot(x,y,'m')title('Funcion seno')xlabel('Frecuencia')ylabel('Amplitud')grid
subplot(2,2,2)plot(x,z,'--g')title('Funcion coseno')xlabel('Frecuencia')ylabel('Amplitud')grid
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
14
subplot(2,2,3)plot(x,y,'m')hold onplot(x,z,'--g')hold ontitle('sin(x) y cos(x)')legend('y=sin(x)','z=cos(x)')grid
subplot(2,2,4)t = 0:pi/50:10*pi;plot3(sin(t),cos(t),t,'y')axis square;grid on
Coordenadas polares
subplot(1,2,1)t=0:pi/50:2*pi;r=sin(2*t).*cos(2*t);polar(t,r,'m')title('Funcion en modo Rad')
subplot(1,2,2)t=0:pi/50:4*pi;r=sind(2*t).*cosd(2*t);polar(t,r,'m')title('Funcion en modo Deg')
Graficos en 3D
subplot(1,2,2)ezsurfc('x^2+y^2')title('Paraboloide')
subplot(3,3,1)ezmesh('sqrt(x^2+y^2-1)')hold onezmesh('-sqrt(x^2+y^2-1)')title('Hiperboloide de una hoja')
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
14
subplot(2,2,3)plot(x,y,'m')hold onplot(x,z,'--g')hold ontitle('sin(x) y cos(x)')legend('y=sin(x)','z=cos(x)')grid
subplot(2,2,4)t = 0:pi/50:10*pi;plot3(sin(t),cos(t),t,'y')axis square;grid on
Coordenadas polares
subplot(1,2,1)t=0:pi/50:2*pi;r=sin(2*t).*cos(2*t);polar(t,r,'m')title('Funcion en modo Rad')
subplot(1,2,2)t=0:pi/50:4*pi;r=sind(2*t).*cosd(2*t);polar(t,r,'m')title('Funcion en modo Deg')
Graficos en 3D
subplot(1,2,2)ezsurfc('x^2+y^2')title('Paraboloide')
subplot(3,3,1)ezmesh('sqrt(x^2+y^2-1)')hold onezmesh('-sqrt(x^2+y^2-1)')title('Hiperboloide de una hoja')
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
14
subplot(2,2,3)plot(x,y,'m')hold onplot(x,z,'--g')hold ontitle('sin(x) y cos(x)')legend('y=sin(x)','z=cos(x)')grid
subplot(2,2,4)t = 0:pi/50:10*pi;plot3(sin(t),cos(t),t,'y')axis square;grid on
Coordenadas polares
subplot(1,2,1)t=0:pi/50:2*pi;r=sin(2*t).*cos(2*t);polar(t,r,'m')title('Funcion en modo Rad')
subplot(1,2,2)t=0:pi/50:4*pi;r=sind(2*t).*cosd(2*t);polar(t,r,'m')title('Funcion en modo Deg')
Graficos en 3D
subplot(1,2,2)ezsurfc('x^2+y^2')title('Paraboloide')
subplot(3,3,1)ezmesh('sqrt(x^2+y^2-1)')hold onezmesh('-sqrt(x^2+y^2-1)')title('Hiperboloide de una hoja')
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
15
subplot(3,3,2)ezsurfc('x^2-y^2')title('Paraboloide de una hoja')
subplot(3,3,3)ezmesh('y^2*(x-1)^2/(y^2+(x-1)^2)')
subplot(3,3,4)ezmesh('-sin(sqrt(exp(-x^2-y^2))+4)')
subplot(3,3,5)ezsurfc('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)')
subplot(3,3,6)ezsurfc('x*exp(-x^2-y^2)')subplot(3,3,7)ezmesh('y/(1+x^2+y^2)')
subplot(3,3,8)x=0:pi/10:2*pi;cylinder(2*sin(x));axis squaretitle('2*sin(x)')
subplot(3,3,9)x=0:pi/10:2*pi;cylinder(2*cosd(x));axis squaretitle('2*cosd(x)')
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
16
7. Programación aplicada a MATLAB para Algebra II
%Comprobación de un Número Positivoclearclca=input('ingrese un numero positivo: ');if a>0
disp('el numero es correcto');else
disp('el numero es incorrecto');end
%Operaciones de un número cualquieraclearclca=input('ingrese un numero: ');
disp('la raiz cuadrada es: ');b=sqrt(a)
disp('el valor exp es: ');c=exp(a)
disp('el valor logaritmico es:');d=log(a)
%Suma de Dos números positivosclearclcdisp('suma de dos numeros positivos');a=input('ingrese primer numero positivo: ');if a>0else
disp('el numero es incorrecto');end
b=input('ingrese segundo numero positivo: ');if b>0else
disp('el numero es incorrecto');enddisp('La solucion es:');if a>0 b>0
c=(a+b)else
disp('------------------------------------------');disp('no hay solucion');disp('operacion incorrecta numeros negativos');
end
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
17
%Comprobación de una Matriz CuadráticaClearclca=input('Ingrese una matriz: ');[f c]=size(a);if f==c
disp('La matriz es cuadrada')else
disp('La matriz no es cuadrada')enddisp('El tamaño de la matriz es:')fprintf(' fila: %g \n',f)fprintf('columna: %g \n',c)
%Operaciones de una Matriz Cualquieraclearclca=input('Ingrese una matriz: ');[f c]=size(a);if f==cdisp('La matriz es cuadrada')
de=det(a);disp('El determinante de la matriz')disp(a)disp('es:')disp(de)
elsedisp('La matriz no es cuadrada')tr=a';disp('La traspuesta de la matriz:')disp(a)disp('es:')disp(tr)
enddisp('El tamaño de la matriz es:')fprintf(' fila: %g \n',f)fprintf('columna: %g \n',c)
%Función de la Campana de Gaussx=linspace(-3,3,500);y=exp(-x.^2);z=2*exp(-x.^2);plot(x,y,'-')hold onplot(x,z,'--')legend('exp(-x^2)','2*exp(-x^2)')title('Campana de Gauss')xlabel('Eje de Abscisas')ylabel('Eje de Ordenadas')
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
18
%Ajuste de curvas linealesclearclcx=input('Ingrese puntos en x:');[fx cx]=size(x);while fx~=1x=input('Ingrese puntos en x:');
[fx cx]=size(x);endy=input('Ingrese puntos en y en funcion de x:');[fy cy]=size(y);while fy~=1 | cy~=cxy=input('Ingrese puntos en y en funcion de x:');[fy cy]=size(y);enda=polyfit(x,y,1);m=a(1);b=a(2);y1=m*x+b;plot(x,y,'*',x,y1,'g')title('Ajuste de curvas')xlabel('Eje x')ylabel('Eje y')
%Aplicacion de Integracionclearclcdisp('la integral de la funcion es:')syms xf=exp(-x)/(1+exp(-x));i=simplify(int(f));pretty(i)disp('la grafica de la integral es:')ezplot(f); %Trazado de la grafica de la figuragrid on; %Habilitación de la cuadriculaaxis([-4.5 4.5 0 1]) %Ejes de visualización de -4.5 a 4.5 en x,
%de 0 a 1 en y
%Aplicacion de la Derivadaclearclcdisp('la solucion de la derivada es:')syms x %Declaracion de la variable independientef=log10((x^2-1)/x); %Declaracion de la funcionderiva=diff(f); %Derivacion de la funcion fd=simplify(deriva) %Se simplifica la derivada a la minima expresionpretty(d) %Imprime la funcion de una forma facil deobservardisp('La grafica de la funcion es:')ezplot(f); %Grafica de la funcion f en 2 dimensionesaxis([-1 5 -1 2]) %LA grafica muestra los limites de -1a5 en x,
%de -1a2 en y
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
19
% Movimiento de funciones y superficiesclearclcx=0:0.01:2*pi;for j=1:10
plot(x,sin(j*x)/2)M(j)=getframe
endmovie(M,4,6)
% Movimiento de funciones y superficiesclearclcn=30;x=linspace(0,2*pi,200);for j=1:n
t=(pi/29)*(j-1);plot(cos(x),sin(t)*sin(x),'gs'),axis([-1 1 -1 1])F(j)=getframe;
endmovie(F,5)
% Movimiento de funciones y superficiesclearclcfigure('position',[100 100 850 600])Z = peaks; surf(Z);axis tightset(gca,'nextplot','replacechildren');for j = 1:20
surf(sin(2*pi*j/20)*Z,Z)F(j) = getframe;
end[h, w, p] = size(F(1).cdata); % use 1st frame to get dimensionshf = figure;set(hf,'position',[150 150 w h])axis offmovie(hf,F,4,30,[0 0 0 0])
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
20
%Programa para graficar n matricesclearclcb=input('Cuantas matrices quieres graficar: ');disp('Ingrese las filas y columnas para dividir la ventana de graficas')ta=input('[fila columna]=');ff=ta(1);cc=ta(2);[f c]=size(ta);clcwhile c~=2
disp('Ingrese fila y columa: ')ta=input('[fila columna]=');[f c]=size(ta);
endfor i=1:b
fprintf('Ejercicio # %g \n',i)a=input('Ingrese una matriz de 2x2: ');[f1 c1]=size(a);while f1~=c1
disp(' Cometiste un error')disp('----------------------')a=input('Ingrese una matriz de 2x2: ');[f1 c1]=size(a);
enddisp('Elija una opción')disp('Rojo --> r')disp('Verde --> g')disp('Amarillo --> y')disp('Azul --> b')disp('Violeta --> m')co=input('Color de fondo: ');syms x yF=[x y]*a*[x;y];subplot(ff,cc,i)
ezsurfc(F)set(gca,'Color',strcat(co))
end
%Grafica de una Matrizclearclca=input('ingrese una matriz de 2*2: ');syms x yz=[x y]*a*[x y]'subplot(1,2,1)ezplot(z)subplot(1,2,2)ezsurf(z)
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
21
%Aplicacion de Ecuaciones Diferencialesclearclc
disp(' Universidad Mayor de San Simón')disp(' Facultad de Ciencias y Tecnología')disp(' Departamento de Ing. Mecánica - Electromecánica')disp(' Laboratorio de Estadística Aplicada')disp('--------------------------------------------------')pause(1), disp('Curso de MATLAB')pause(1), disp('Programación Aplicada')pause(1), disp('Materia: Ecuaciones Diferenciales')pause(1), disp('Instructor: Oscar Luis Chavez Pillco')pause(1), disp('--------------------------------------------------')pause(1), disp('Teniendo la siguiente ecuación diferencial')pretty(poly2sym('1/(18-3*x)*dx=dy'))
pause(1), disp('Integrando ambos miembros obtenemos')pretty(solve('int(1/(18-3*x),x)=int(1,y)'))
pause(1), disp('Hallando la constante C')C=simple(sym('solve(subs(x=0,y=1,x=-1/3*exp(-3*y)+ 6-C),C)'));pretty(C)
pause(1), disp('La solución general es:')pretty(poly2sym('z=-x-1/3*exp(-3*y)+6'))
pause(1), disp('La solución particular es:')pretty(poly2sym('-1/3*log((18-3*x)/(6-1/3*exp(-3)))'))
pause(1), disp('Ahora veremos las gráficas de las ecuaciones')[x y]=meshgrid(-1:.1:1);z=-x-1/3*exp(-3*y)+6;
subplot(1,3,1)contour(z,20)title('Solución General')grid
subplot(1,3,2)ezplot('-1/3*log((18-3*x)/(6-1/3*exp(-3)))')title('Solución Particular')grid
subplot(1,3,3)ezsurf('-x-1/3*exp(-3*y)+6')set(gca,'Color',strcat('g'))
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
22
% Aplicacion de Jacobiano en Ecua. Diferencialesclearclcsyms x yf=[x^2-2*x-y+0.5/x^2+4*y^2-4];disp('El sistema de ecuacion es:')pretty(f)syms JacobianoJF=[Jacobiano];X=[x y];for i=1:length(X)
JF=[JF;diff(f,X(i))]disp(JF)
end
%Aplicacion de Circuitos Eléctricos en MATLAB, resolución de ecuaciones linealesclearclcR=input('introduzca los valores de resistencias en ohms,[R1...R5]');V=input('introduzca los valores de voltaje en volts,[V1 V2]');A=[R(1)+R(2) -R(2) 0;
-R(2) R(2)+R(3)+R(4) -R(4);0 -R(4) R(4)+R(5)];
B=[V(1);0;V(2)];
if rank(A)==3fprintf('corrientes de malla \n')i=A\B
elsefprintf('no existe una solucion unica')
end
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
23
%Aplicacion de Estructuras While y Forclearclcdisp('Eliga una opción')disp('1. Derechos')disp('2. Determinante')disp('3. Inversa')op=input('Que opción has elegido: ');if op==1
pause(0.5), disp(' Universidad Mayor de San Simón')pause(0.5), disp(' Facultad de Ciencias y Tecnología')pause(0.5), disp('Departamento de Ing. Mecánica - Electromecánica')pause(0.5), disp(' Laboratorio de Estadistica Aplicada "CESA"')pause(0.5), disp('------------------------------------------------')pause(0.5), disp('Curso Matlab')pause(0.5), disp('Aplicacion de estructura while y for')pause(0.5), disp('Instructor: Oscar Luis Chavez Pillco')pause(0.5), disp('Gestion II/2011')
elseif op==2b=input('Cuantas operaciones deceas realizar: ');
for i=1:bfprintf('Ejercicio nro: %g \n', i)a=input('Ingrese una matriz cuadrada: ');[f c]=size(a);
while f~=cdisp('----------------------------------')disp(' Cometiste un error')a=input('Ingrese una matriz cuadrada: ');[f c]=size(a);
enddeterminante=det(a);disp('Determinante:'), disp(determinante)
endelseif op==3
b=input('Cuantas operaciones deceas realizar: ');for i=1:b
fprintf('Ejercicio nro: %g \n', i)a=input('Ingrese una matriz cuadrada: ');[f c]=size(a);
while f~=cdisp('--------------------------------------------------')disp(' Cometiste un error')a=input('Ingrese una matriz cuadrada: ');[f c]=size(a);
endinversa=inv(a);disp('Inversa:'), disp(inversa)
endelse
disp('Solo ingrese opciones del 1 al 3')end
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
24
%Aplicacion de Estructura If – Else – Endclearclcdisp('La siguiente programacion se realiza con funciones definidas')disp('Eliga una opción')disp('1. Derechos')disp('2. Integral')disp('3. Derivada')op=input('Que opción has elegido: ');if op==1
pause(0.8), disp(' Universidad Mayor de San Simón')pause(0.8), disp(' Facultad de Ciencias y Tecnología')pause(0.8), disp(' Departamento de Ing. Mecánica - Electromecánica')pause(0.8), disp(' Laboratorio de Estadística Aplicada "CESA"')pause(0.8), disp('--------------------------------------------------')pause(0.8), disp('Curso Matlab')pause(0.8), disp('Aplicacion de Estructura while y for')pause(0.8), disp('Instructor: Oscar Luis Chavez Pillco')pause(0.8), disp('Gestion II/2011')
elseif op==2b=input('Ingrese el 1er limite izquierdo: ');c=input('Ingrese el 1er limite derecho: ');d=input('Ingrese el 2do limite izquierdo: ');e=input('Ingrese el 2do limite derecho: ');if b>=0, c>0, d>=0, e>0
syms x ydisp('Teniendo la siguiente función')a=(exp(-x.^2-y.^2)*(4/pi))f=inline(a)I=dblquad(f,b,c,d,e)
elsedisp('error al realizar la operación')disp('vuelva a intentarlo')
endelseif op==3a=input('Ingrese la contraseña: ');if a==op
disp('la solución de la derivada es:')syms xg=4*x*sin(x);deriva=diff(g);d=simplify(deriva)
elsedisp('Error al realizar la operación')disp('Verifique e intente nuevamente')
endelse
disp('Solo ingrese opciones del 1 al 3')end
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
25
%Aplicacion de Tipos de Estructurasclearclcdisp('Eliga una opción')disp('1. Derechos')disp('2. Circuito')disp('3. Angulo de Rectas')op=input('Que opción has elegido: ');if op==1
pause(0.5), disp('------------------------------------------------')pause(0.5), disp(' Universidad Mayor de San Simón')pause(0.5), disp(' Facultad de Ciencias y Tecnología')pause(0.5), disp('Departamento de Ing. Mecánica - Electromecánica')pause(0.5), disp(' Laboratorio de Estadistica Aplicada "CESA"')pause(0.5), disp('------------------------------------------------')pause(0.5), disp('Aplicacion de Estructuras)pause(0.5), disp('Instructor: Oscar Luis Chavez Pillco')pause(0.5), disp('------------------------------------------------')
elseif op==2b=input('Cuantas operaciones deceas realizar: ');
for i=1:bfprintf('Ejercicio nro: %g \n',i)R=input('Ingrese los valores de las resistencias,[R1...R5]: ');V=input('Ingrese el valor de los voltajes en volts,[V1.V3]: ');A=[R(1)+R(2) -R(2) 0;
-R(2) R(2)+R(3)+R(4) -R(4);0 -R(4) R(4)+R(5)];
B=[V(1) V(2) V(3)]';if rank(A)==3
fprintf('Las corrientes de malla son:\n')I=A\B
elsefprintf('No existe una solucion unica')
endendelseif op==3
b=input('Cuantas operaciones deceas realizar: ');for i=1:b
fprintf('Ejercicio nro: %g \n',i)A=input('Ingrese los puntos en el mayor vertice: ');B=input('Ingrese los puntos en el menor vertice: ');C=input('Ingrese los puntos en el menor vertice: ');if [A,B,C]>0
AC=C-A;AB=B-A;alpha = acosd(dot(AC,AB)/(norm(AC)*norm(AB)))
elsedisp('Ingrese correctamente los puntos')
endendelse
disp('Solo ingrese opciones del 1 al 3')end
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
26
%Método de Newton para resolver la ecuación f(x)=0
clearclcf=input('Ingrese la función: ');datos=input('Ingrese [x0 Tol]: ');xn=datos(1);Tol=datos(2);
syms xf1=xn-f/diff(f,x);pretty(f1)it=0;fxn=subs(f,xn)/subs(diff(f,x),xn);while abs(fxn)>Tol
x1=xn-fxn;xn=x1;it=it+1;fxn=subs(f,xn)/subs(diff(f,x),xn);
endfprintf('Numero de iteraciones= %g \n',it)fprintf('La raiz es: %g \n',xn)
ezplot(f)hold onezplot('0')text(xn,0,'o Este es la raiz')grid on
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
27
%Factorización de n Matricesclearclcn=input('Cuantas matrices quieres factorizar:');[f1 c1]=size(n);
while f1~=1 | c1~=1n=input('Cuantas matrices quieres factorizar:');[f1 c1]=size(n);
endclc
for i=1:nfprintf('Ejercicio: %g \n',i)fprintf('de %g \n',n)a=input('Ingrese una matriz cuadrada: ');[f c]=size(a);
while f~=ca=input('Ingrese una matriz cuadrada: ');[f c]=size(a);
endL=tril(a);U=triu(a);disp('La factorizacion de la matriz')disp(a), disp('es:')
disp('Matriz Triangular Inferior')disp(L)
disp('Matriz Triangular Superior')disp(U)
disp('Presione cualquier tecla para continuar')pause()clc
end
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIALABORATORIO DE ESTADISTICA APLICADA “CESA” Instructor: OSCAR L. CHAVEZ PILLCO
ALGEBRA LINEAL
MATLAB2011Rb
28
%Programa de identificación de un sistema de solucionesclearclcA=input('Ingrese la matriz de coeficientes: ');B=input('Ingrese al matriz de resutados: ');t=size(A);c=t(2); %numero de variablesm=rank(A); %rango de la matriz de coeficientesmA=rank([A B]); %rango de la matriz ampliada
if m==cr=rref([A B]);disp('Unica solucion')disp('Reduccion por filas Metodo de Gauss-Jordan')disp(r)
elseif mA<cdisp('Infitas soluciones')disp('Reduccion por filas Metodo de Gauss-Jordan')r-rref([A B]);disp(r)
elseif m~=madisp('No tiene solucion')disp('Reduccion por filas Metodo de Gauss-Jordan')r=rref([A B]);disp(r)
end