Matlab Capítulo II
Vector
*
representa una multiplicación de vector;
'
denota transposición de vector;
MATLAB permite el vector y combinado: w = [ u; v ]
o f = [ u v ]
;
podemos usar x = [0(初值):2(步长*可以为负):10(终止值)]
para crear un número par del vector de 0 a 10 en punto seleccionado del grupo:
>> x = [ 0; 2; 10]
x =
0 2 4 6 8 10
.^
Representa la potencia de un vector y no puede usar directamente el símbolo ^
linspace(a,b,n)
para crear un vector que contenga n elementos aritméticos entre ay b;
Las operaciones vectoriales
dot(a,b)
o .*
ambas pueden representar el producto escalar vectorial;
podemos usar el siguiente comando para calcular el módulo de un vector:
>> J = [ 0; 3; 4];
mag = sqrt(dot(a,a))
mag =
5
cross(A,B)
Representa el producto cruzado de un vector, el vector del producto cruzado debe ser tridimensional:
>> A = [ 1 2 3]; B = [ 2 3 4];
>> C = cross(A, B)
C =
-1 2 -1
V(i)
Se refiere al elemento i-ésimo de v;
v(:)
se referirá a todos los elementos;
v(4:6)
indica elementos dentro de un cierto rango, por ejemplo:
>> v = A (4:6)
v =
0
4
4
Indica que los elementos 4 a 6 de A se seleccionan para formar un nuevo vector
Matriz
.*
representa la multiplicación de matrices de la matriz (no la multiplicación de matrices), lo que significa que los elementos correspondientes se multiplican;
*
representa la multiplicación de matrices, que requiere que la matriz se opere para cumplir las condiciones de la multiplicación de matrices;
./
y .\
respectivamente representan la derecha y la izquierda división de la matriz;
eye(n)
puede crear una matriz unitaria nxn, zeros(n)
puede crear una matriz nxn cero, ones(n)
puede crear una matriz nxn 1;
Se puede citar
un solo elemento o una columna completa de una matriz en Matlab:
A = [ 1 2 3; 4 5 6; 7 8 9]
podemos usar `A (m, n) para seleccionar elementos de m filas yn columnas:
>> A(2,3)
ans =
6
Puede utilizar A (:, i) para hacer referencia a todos los elementos de la i-ésima columna:
>> A (:,2)
ans =
2
5
8
- Puede usar A (:, i: j) para seleccionar todos los elementos de la i-ésima columna a la j-ésima columna;
- Puede utilizar A (m: n, i: j) o A ([m, n], [i, j]) para seleccionar la submatriz;
Puede eliminar filas o columnas de una matriz utilizando una matriz vacía:
>> A(2,:)=[]
A =
1 2 3
7 8 9
La operación anterior convierte la matriz 3x3 en una matriz 2x3;
La solución lineal y determinante
det(A)
significa calcular el determinante de la matriz A:
>> A = [1 3; 4 5]
>> det(A) =
ans =
-7
Analizando el caso podemos usar el determinante de solución matricial, cuando necesitamos representar una pluralidad de soluciones, necesitamos entrenar un conjunto de solución base: la
null()
función representa la matriz de espacio nulo, podemos usar null(A,'r')
para devolver un conjunto de base racional Solución :
>> A = [3 0 -1 0; 8 0 0 -2; 0 2 -2 -1];
z=null(A)
z =
700/4999
502/717
799/1902
601/1073
>>y=null(A,'r')
y =
1/4
5/4
3/4
1
- rango (A) = n es equivalente a una matriz vacía donde nulo (A) es nx0, es decir, Ax = b tiene una solución única;
Rango y matriz inversa
El rango de una matriz es una medida de la independencia lineal entre los vectores de la matriz, que se puede rank(A)
calcular usando;
También podemos juzgar la situación de solución por rango:
Para la matriz de orden mxn Ax = b, el sistema tiene una solución si y solo cuando rango (A) = rango (A b); si el rango es igual an, la solución es única; si el rango es menor que n, hay infinitas soluciones;
inv(A)
Representa la matriz inversa de A. La matriz inversa existe si y solo si det (A) no es igual a 0. La llamamos matriz invertible o matriz no singular (dicha matriz debe ser de rango completo);
- Matlab también puede encontrar la matriz pseudoinversa (o matriz inversa generalizada):
pinv(A)
La matriz trapezoidal
rref(A)
puede encontrar la matriz trapezoidal más simple de A. Por ejemplo, para la matriz del cuadrado mágico, la mano es muy complicada y matlab puede manejarla fácilmente:
>> A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> rref(A)
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
- magic (n) es la sintaxis para encontrar una matriz cuadrada mágica de orden n. En dicha matriz, la suma de las filas y columnas, incluidas las diagonales, son iguales. Verifiquemos
La estructura sintáctica de sum: sum (A, dim)
A representa una matriz, dim = {1,2}; 1 representa la suma de columnas, 2 representa la suma de filas
Sigamos tomando solo A como ejemplo:
>> sum(A,1)
ans =
65 65 65 65 65
>> sum(A,2)
ans =
65
65
65
65
65
Luego suma las diagonales a través de un bucle simple:
>> e=0;d=0;
for i=1:5; j=6-i;
b=A(i,i); c=A(i,j);
d=d+b; e=e+c;
end;
e,d
e =
65
d =
65
No es difícil ver que la suma de filas, columnas y diagonales es igual
Matlab descomposición de la matriz
puede descomponer rápidamente una matriz de varios tipos:
[L,U]=lu(A)
Representa la descomposición LU de A;
>> A= [-1 2 0; 4 1 8; 2 7 1];
[L,U]=lu(A)
L =
-1/4 9/26 1
1 0 0
1/2 1 0
U =
4 1 8
0 13/2 -3
0 0 79/26