Practica de matlab:
Matlab es el nombre
abreviado de “Matrix
Laboratory”. Matlab es un programa para realizar cálculos numéricos con vectores
y matrices. Como caso particular puede también trabajar con números escalares,
tanto reales como complejos. Una de las capacidades más atractivas es la de
realizar una amplia variedad de gráficos en dos y tres
dimensiones.
- Operaciones con números reales:
>> 2+2
ans =
4
>>
654654656465645+6765767657655352421
ans =
6.7664e+18
- Si introducimos la palabra "help" en la ventana de comandos el programa nos imprimira en pantalla una serie de comandos que nos ayudara a resolver el problema que tengamos.
aquí dejo algunas de ellas como ejemplo aunque hay muchas
mas:
>> help
HELP topics:
matlab/general - General purpose
commands.
matlab/ops - Operators and special
characters.
matlab/lang - Programming language
constructs.
matlab/elmat - Elementary matrices and
matrix manipulation.
matlab/randfun - Random matrices and random
streams.
matlab/elfun - Elementary math
functions.
matlab/specfun - Specialized math
functions.
matlab/matfun - Matrix functions -
numerical linear algebra.
matlab/datafun - Data analysis and Fourier
transforms.
matlab/polyfun - Interpolation and
polynomials.
matlab/funfun - Function functions and ODE
solvers.
matlab/sparfun - Sparse
matrices.
matlab/scribe - Annotation and Plot
Editing.
matlab/graph2d - Two dimensional
graphs.
matlab/graph3d - Three dimensional
graphs.
- Si añadimos a la palabra help por ejemplo rank el programa nos mostrara la ayuda respecto a la palabra que le sigue en este caso de las matrices.
>> help rank
RANK Matrix rank.
RANK(A) provides an estimate of the number of
linearly
independent rows or columns of a matrix
A.
RANK(A,tol) is the number of singular values of
A
that are larger than tol.
RANK(A) uses the default tol = max(size(A)) *
eps(norm(A)).
Class support for input
A:
float: double, single
Overloaded methods:
gf/rank
rptcp/rank
Reference page in Help
browser
doc rank
-
También puedes declarar variables lo que nos permite trabajar más cómodos y más rápido
>> cos(pi)
ans =
-1
>> a=3
a =
3
>> b=5
b =
5
>> a-b
ans =
-2
>> x=a+b
x =
8
- Si la variable utilizada no existe nos saldrá el siguiente mensaje.
>> z
??? Undefined function or variable
'z'.
- También hace raíces, en el caso del ejemplo raíz cuadrada de 4:
>> sqrt(4)
ans =
2
- Operaciones con números complejos:
>> z=3+2i
z =
3.0000 + 2.0000i
>> s=5-7i
s =
5.0000 - 7.0000i
>> z+s
ans =
8.0000 - 5.0000i
>> z*s
ans =
29.0000 -11.0000i
Para pasar un número complejo a polar solo
hay que sacar su modulo y su ángulo
>> abs(z)
ans =
3.6056
>> angle(z)
ans =
0.5880
>> m=abs(x)
m =
8
>> alfa=angle(z)
alfa =
0.5880
>> m=abs(z)
m =
3.6056
En caso de que queramos pasar el numero
de polar a imaginario se haría de esta forma:
>> x=m*cos(alfa)
x =
3
>> y=m*sin(alfa)
y =
2.0000
- Matrices
Para introducir una matriz solo hay que poner su nombre = y entre [] los
números de las filas separados por un espacio y una coma cuando cambiemos de
fila.
>> A=[1 2 3;5 -1 -2; 0 0 0
]
A =
1 2 3
5 -1 -2
0 0 0
>> B=[1 1 1;2 2 2 ;1 -1
2]
B =
1 1 1
2 2 2
1 -1 2
Con esta función el programa nos crea una
matriz con números aleatorios.
>> C=rand(3,3)
C =
0.8147 0.9134
0.2785
0.9058 0.6324
0.5469
0.1270 0.0975
0.9575
Transpuesta de una matriz:
>> X=[1 1 5]'
X =
1
1
5
>> A+B
ans =
2 3 4
7 1 0
1 -1 2
>> A-C
ans =
0.1853 1.0866
2.7215
4.0942 -1.6324
-2.5469
-0.1270 -0.0975
-0.9575
>> A
A =
1 2 3
5 -1 -2
0 0 0
>> A*X
ans =
18
-6
0
>> A*C
ans =
3.0073 2.4707
4.2448
2.9139 3.7394
-1.0694
0 0
0
>> X*a
ans =
3
3
15
En caso de que la operación entre matrices no
este permitida nos saldrá este error:
>> X*A
??? Error using ==> mtimes
Inner matrix dimensions must
agree.
Esta función es para obtener el rango de una matriz.
>> rank(A)
ans =
2
>> rank (2)
ans =
1
>> rank(B)
ans =
2
Polinomio caracteristico de la
matriz:
>> poly(A)
ans =
1 0 -11 0
Inversa de una matriz:
>> inv(C)
ans =
-1.9958 3.0630
-1.1690
2.8839 -2.6919
0.6987
-0.0291 -0.1320
1.1282
Determinante de una matriz:
>> det(a)
ans =
3
Este comando nos imprimirá la matriz
unidad de orden "n":
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
Valores propios y vectores
propios
>> [val.vec]=eig(A)
val =
vec: [3x1 double]
>> [z,v]=eig(A)
z =
0.6535 -0.4204
0.0493
0.7569 0.9073
-0.8385
0 0
0.5426
v =
3.3166 0
0
0 -3.3166
0
0 0
0
>> expm(A)
ans =
17.9521 8.3009
11.2875
20.7522 9.6513
11.4836
0 0
1.0000
- Esta función nos borra todas las variables definidas
>> clear
- El comando "syms" nos permite trabajar con las variables como un símbolo
>> syms x y s lambda
>> A=[1 2 3;0 1 0;3 -1
7]
A =
1 2 3
0 1 0
3 -1 7
>> det(A-lambda*eye(3))
ans =
- lambda^3 + 9*lambda^2 - 6*lambda -
2
>> x+y
ans =
x + y
>> x-y
ans =
x - y
>> x*x
ans =
x^2
>> x+x
ans =
2*x
>> x+2*y
ans =
x + 2*y
>>
c=det(A-lambda*eye(3))
c =
- lambda^3 + 9*lambda^2 - 6*lambda -
2
>> c=A-lambda*eye(3)
c =
[ 1 - lambda, 2,
3]
[ 0, 1 - lambda,
0]
[ 3, -1, 7 -
lambda]
>> det(c)
ans =
- lambda^3 + 9*lambda^2 - 6*lambda -
2
>> p=det(c)
p =
- lambda^3 + 9*lambda^2 - 6*lambda -
2
>> q=poly(A)
q =
1.0000 -9.0000 6.0000
2.0000
- Derivadas
>> f=3*x^2
f =
3*x^2
>> diff(f,x)
ans =
6*x
- Integrales
Integral indefinida
>> int(f,x)
ans =
x^3
Integral definida
>> int(f,x,-3,5)
ans =
152
>> p=int(f,x,-3,5)
p =
152
Si ponemos double el resultado sera un número
real no entero
>> double(p)
ans =
152
- Matlab también nos permite hacer gráficos de funciones para ello ponemos la función y los intervalos que queremos que tenga nuestra gráfica y con la función plot(x,y),title('parábola') nos sacara una gráfica de titulo parábola como se muestra en la foto de mas abajo.
>> y=x^2
y =
x^2
>> x=[-2:0.1:2]
x =
Columns 1 through 15
-2.0000 -1.9000 -1.8000 -1.7000 -1.6000
-1.5000 -1.4000 -1.3000 -1.2000 -1.1000 -1.0000 -0.9000 -0.8000
-0.7000 -0.6000
Columns 16 through 30
-0.5000 -0.4000 -0.3000 -0.2000 -0.1000
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000
0.8000 0.9000
Columns 31 through 41
1.0000 1.1000 1.2000 1.3000 1.4000
1.5000 1.6000 1.7000 1.8000 1.9000
2.0000
>> y=x.^2
y =
Columns 1 through 15
4.0000 3.6100 3.2400 2.8900 2.5600
2.2500 1.9600 1.6900 1.4400 1.2100 1.0000 0.8100 0.6400
0.4900 0.3600
Columns 16 through 30
0.2500 0.1600 0.0900 0.0400 0.0100
0 0.0100 0.0400 0.0900 0.1600 0.2500 0.3600 0.4900
0.6400 0.8100
Columns 31 through 41
1.0000 1.2100 1.4400 1.6900 1.9600
2.2500 2.5600 2.8900 3.2400 3.6100
4.0000
>>
plot(x,y),title('parabola')
No hay comentarios:
Publicar un comentario