Documente Academic
Documente Profesional
Documente Cultură
Matlab Básico
1.1 Introducción
1.2 Características Básicas
1.3 Matlab como Calculadora
1.4 Números y Formatos
1.5 Variables
1.6 Caracteres y órdenes especiales en MATLAB
1.7 Explorador del espacio de trabajo (Workspace Browser)
1.8 Almacenar y recuperar datos
1.9 El comando "diary"
1.10 Comandos de lectura y Escritura
1.11 Funciones matemáticas en MATLAB
1.12 Otras funciones en matlab.
1.13 Vectores
1.14 Transposición de vectores
1.15 Matrices (Arrays)
1.16 Visualización de elementos de una matriz
1.17 Matemática de vectores con escalares
1.18 Matemáticas de arrays con arrays
1.19 Operadores Relaciónales y Lógicos en vectores
1.19.1 Operadores Relaciónales
1.19.2 Operadores Lógicos.
1.20 Manipulación de Texto
1.21 Representación ASCII de una cadena
1.22 Álgebra Lineal y Matrices
1.22.1 Adición de matrices:
1.22.2 Sustracción de matrices
1.22.3 Multiplicación de una matriz por un número
1.22.4 Multiplicación de matrices:
1.23 Clases de Matrices
1.23.1 Matriz Transpuesta
1.23.2 Matriz Simétrica
1.23.3 Matriz inversa
1.24 Determinante de una Matriz
1.25 Rango de una Matriz
1.26 Generación de matrices especiales en Matlab
1.26.1 Matriz identidad
1.26.2 Matriz Nula
1.26.3 Matriz Unidad
1.27 Funciones en matrices y vectores
1.28 Sistemas de Ecuaciones Lineales
1.29 Solución de sistemas lineales mediante matlab
1.29.1 Método de descomposición LU
1.29.2 Solución con el operador Slash (\ )
1.29.3 Solución por la matriz inversa
1.29.4 Método de reducción a la forma canónica
1.30 Funciones Poli nómicas
1.31 Raíces
1.32 Suma de Polinomios
1.33 Multiplicación de Polinomios
1.34 División de Polinomios:
1.1 Introducción:
MatLab emplea matrices porque con ellas se puede describir infinidad de situaciones de una
forma altamente flexible y matemáticamente eficiente. Una matriz de pixeles puede ser una
imagen o una película. Una matriz de fluctuaciones de una señal puede ser un sonido o una
voz humana. Y tal vez más significativamente, una matriz puede describir una relación lineal
entre los componentes de un modelo matemático. En este último sentido, una matriz puede
describir el comportamiento de un sistema extremadamente complejo. Por ejemplo una
matriz puede representar el vuelo de un avión a 40.000 pies de altura, o un filtro digital de
procesamiento de señales.
MatLab está disponible para una amplio número de plataformas: estaciones de trabajo como
SUN, Apollo, VAXstation y HP, VAX, MicroVAX, Gould, Apple Macintosh y PC AT compatibles
80386 o superiores. Opera bajo sistemas operativos UNIX, Macintosh y Windows.
El prompt " >> " es el indicativo de petición de órdenes de MATLAB, el cual indica que
MATLAB está esperando una orden. Al lado de este símbolo ">>" aparecerá el cursor
parpadeando.
Cuando MATLAB da una respuesta, lo hará precedida de las letras "ans=" (que es la
abreviatura de answer).
Para empezar a utilizar MATLAB se debe conocer una serie de características, como que
MATLAB no tiene en cuenta los espacios en blanco a la hora de operar. Además, las
operaciones se evalúan de izquierda a derecha, con la operación de potencia teniendo el
orden de preferencia más alto, seguido por la multiplicación y la división (ambas con igual
preferencia), y seguidas por último por la suma y la resta (estas dos también con igual
preferencia).
>>4+6+2
>>4*25+6*22+2*99
>>2^2+1
Si introducimos las anteriores operaciones en MATLAB, obtenemos los siguientes resultados:
>> 4 + 6 +2
ans =
12
>> 4*25+6*22+2*99
ans =
430
>> 2^2+1
ans =
5
Se pueden emplear paréntesis para alterar la preferencia en las operaciones, en cuyo caso la
evaluación se inicia dentro del paréntesis más interno y procede hacia afuera:
Como ejemplo tenemos lo siguiente:
>> 3^2-5-6/3*2
ans =
0
>> 3^2-5-6/ (3*2)
ans =
3
>> 4*3^2+1
ans =
37
>> (4*3)^2+1
ans =
145
MATLAB sigue algunas reglas para visualizar resultados numéricos. Por defecto, si un
resultado es entero, MATLAB lo visualiza como un número entero. Cuando un resultado es
un número real, MATLAB lo visualiza con cuatro dígitos a la derecha del punto decimal. Si los
Aparte de estas conductas por defecto, se puede especificar un formato numérico diferente
usando la opción "Numerical Format", en el menú "Options", o escribiendo la orden
apropiada en MATLAB:
RESULTADO QUE SE
ORDEN DE MATLAB ACLARACIÓN
VISUALIZA
format long 35.83333333333334 16 dígitos
format short e 3.5833e+01 5 dígitos + exponente
format long e 35.83333333333334e+01 16 dígitos + exponentes
format hex 4041eaaaaaaaaaab hexadecimal
format bank 35.83 2 dígitos decimales
indica si un número es
format + +
positivo, negativo o cero
format rat 215 / 6 aproximación racional
format short 35.8333 visualización por defecto
1.5 Variables.
>> A = 4;
>> B = 6;
>> C = A + B
C=
10
>> manzanas = 4;
>> plátanos = 6;
>> fruta = manzanas + plátanos
fruta =
10
MATLAB tiene reglas acerca de los nombres de las variables y estas son:
• a).- Los nombres de variables deben tener una sola palabra. Si se quiere usar dos o
más palabras se utiliza el guión de subrayado para unirlas, por ejemplo:
• b).-Las variable son sensibles a las mayúsculas, por ejemplo, las siguientes variables
son totalmente distintas:
• c).-Las variables pueden contener hasta 19 caracteres (los caracteres más allá de 19
se ignoran).
• d).- Las variables deben comenzar con una letra, seguida por un número de letras,
dígitos o guiones de subrayado. No se permiten los caracteres de puntuación, que
muchos tienen un significado especial en MATLAB.
>> A = 4;
>> B = 6
B=
6
>>
>> A = 4 , B = 6
A=
4
B=
6
>>
>> A = 4 ; B = 6 ; C = 2 ;
>>D = A*2 + B*1…………
C*2
D=
18
>>
• % Este símbolo al inicio de una sentencia indica que lo que viene detrás es
un comentario, y que MATLAB lo ignora. Esta característica nos permite
facilitar la comprensión de lo que se esta haciendo, documentando cada paso
si fuera necesario:
Who: muestra una lista corta de las variables que se definieron en Matlab.
• Por ejemplo, si a definido las siguientes variables: A=25, B=2, y C=2*A+B, al
teclear who en la línea de comandos de MATLAB se obtendrá lo siguiente:
>> A = 25;
>> B = 2;
>> C = 2* A+B;
>> who
Your variables are:
A B C
Whos: muestra la lista de variables, el tamaño que ocupan, e información de como está
almacenada la variable.
• Cuando usamos estas órdenes, MATLAB no nos indica el valor de las variables,
simplemente da sus nombres. Para encontrar el valor de cada variable hay
que introducir el nombre de la variable en el indicativo o prompt de MATLAB, y
presionar Enter.
>> A = 25;
>> B = 2;
>> C = 2* A+B;
>> whos
Name Size Bytes Class
A 1x1 8 double array
De forma similar, pulsando la flecha hacia abajo volvemos a desplazarnos hacia adelante. En
cualquier momento, se pueden emplear las teclas izquierda y derecha para mover el cursor
dentro de la orden y modificarla. De esta forma, se puede editar las órdenes, lo cual es muy
útil a la hora de corregir errores.
Para borrar todas las variables del espacio de trabajo de MATLAB, basta con teclear clear.
Sin embargo, si lo que queremos es borrar alguna variable concreta, pondremos clear
seguido del nombre de la variable, por ejemplo, >> clear A
Existe una forma de ver el espacio de trabajo de MATLAB, de igual forma que si utilizáramos
la orden whos, pero de una forma gráfica. Esto se consigue con el Explorador del espacio de
trabajo. Para ello, basta con ir a la opción Show Workspace del menú File o el botón de la
barra de herramientas Workspace Browser, como muestra la grafica.
Para renombrar una variable, basta con seleccionarla con el ratón y volver a clickar sobre
ella. Escribimos encima el nuevo nombre y pulsamos Enter.
La orden "Load Workspace" en el menú "File" abre un cuadro de diálogo para cargar
variables de un espacio de trabajo guardado previamente.
Si cargamos variables que poseen el mismo nombre que las que se encuentran en el espacio
de trabajo de MATLAB, se cambian los valores de las variables a aquellos cargados en el
archivo.
También es posible teclear por pantalla las órdenes "Save" y "Load" para salvar o cargar el
espacio de trabajo, pero con especificaciones concretas, por ejemplo:
• Save. Almacena todas las variables del espacio de trabajo con formato
binario en un archivo llamado "matlab.mat". Los datos pueden recuperarse
con "Load"
• save nombre archivo variables. Guarda una selección de las variables del
espacio de trabajo actual que le indiquemos después del nombre del archivo.
Load. Recupera todas las variables que están almacenadas en el archivo "matlab.mat"
El comando diary crea un "diario" de las diferentes sesiones de MATLAB en un archivo que
se puede ver o modificar con cualquier procesador de texto. Este "diario" incluirá todos los
comandos que hayamos usado, así como su salida. Lo único que no mostrará serán las
gráficas.
Para empezar a grabar el diario, teclearemos >> diary, y para finalizar >>diary off. Si
se quiere usar un nombre determinado en el fichero, se realizara con: >>diary
nombre_archivo
Matlab provee una forma sencilla de leer variables desde el teclado y visualizar
mensajes en la pantalla a través de las siguientes funciones:
Input: Permite el ingreso de datos al programa a través del teclado asignándolo a una
variable, esta orden puede usarse con un mensaje en la línea de comandos. Luego de
imprimir el mensaje, la orden espera que el usuario digite el valor numérico, vector, matriz
o cualquier expresión valida de matlab.
>> z = imput ( );
o >> z = input (´ Ingrese un número ´);
MATLAB ofrece un sin número de funciones, las que aceptan como argumento
variables reales y/o complejas sin discriminación, así como argumentos matriciales.
Funciones Trigonométricas.
Función Descripción
sin(x) Seno de x
asin(x) Arcoseno de x
sinh(x) Seno hiperbolico de x
asinh(x) Arcoseno hiperbolico de x
cos(x) Coseno de x
acos(x) Arcoseno de x
acos(x) Arcocoseno(x)
cosh(x) Coseno hiperbolico de x
acosh(x) Arcocoseno hiperbolico de x
tan(x) Tangente de x
atan(x) Arco tangente de x
tanh(x) Tangente hiperbolico de x
Arcotangente hiperbolico de
atanh(x)
x
cot(x) Cotangente de x
sec(x) Secante de x
csc(x) Cosecante de x
Ejemplo:
>> x = [1, 2,3; 9, 8,7]
>> sin (x)
Los corchetes se utilizan para definir una variable con múltiples valores:
>> x = [0.8 0.9 0.1; 0.8 0.9 0.1; 0.4 0.9 0.6]
>>z = asin(x)
Devuelve
Funcion Descripción
abs(x) Valor absoluto de x
Ejemplo:
>> x = [-3 4 -11 0]
>> abs( x)
3 4 11 0
>> x = [2 1 5]
>> sort(x)
1 2 5
>>sort( [2 1 5]´ )
1
2
5
1.13 Vectores
>> vector 2 = [ 1 ; 2 ]
vector 2 =
1
2
Existen diferentes formas de definir una variable vectorial sin necesidad de explicitar
entre corchetes todos sus elementos separados por comas o espacios en blanco. Estas otras
formas crean vectores cuyos elementos siguen una relación dada:
Vector = [primer _ elemento: último _elemento]
Define el vector cuyos primero y último elementos son los especificados, y los
elementos intermedios se diferencian en una unidad. Entre el primer y último elemento se
utiliza el símbolo " : "
Define el vector cuyos primero y último elementos son los especificados, y los
elementos intermedios se diferencian en la cantidad especificada por el incremento. También
los separamos por " : "
Define el vector cuyos primero y último elementos son los especificados, y que tiene
en total "n" elementos uniformemente espaciados entre sí. En este caso, los datos son
separados por comas, y en lugar de corchetes, utilizamos paréntesis:
Matlab puede convertir vectores fila a vectores columna y viceversa con mucha
facilidad utilizando para ello (‘).
Ejemplo:
>> W, W’
>> W = [1 -2 3]
W=
1 -2 3
ans =
1
-2
3
Cuando los vectores son números complejos se realiza de la misma forma, Ejemplo:
1.0000 - 3.0000i
2.0000 + 2.0000i
1.0000 + 3.0000i
2.0000 - 2.0000i
Para definir una matriz en MATLAB, basta con introducir entre corchetes todos sus
vectores fila separados por punto coma. A su vez, los vectores fila se pueden introducir
separando sus componentes por espacios en blanco o por comas, tal como se vio
anteriormente.
>> matriz1=[a11 a12 a13 ; a21 a22 a23 ; a31 a32 a33 ]
>> matriz1=[a11 , a12 , a13 ; a21 , a22 , a23 ; a31 , a32 , a33 ]
Ejemplo:
>> X= [1, 4, 5,8; 5, 0, 0,2; 0, 1,-7,3]
X=
1 4 5 8
5 0 0 2
0 1 -7 3
>> x = [2 4 6 8 10];
>> x(1)
ans =
2
>>x(3)
ans =
6
Esta instrucción funciona tanto para elementos de vectores fila como de vectores
columna. Para el caso de elementos de una matriz tenemos X (i, j).
1 4 5 8
5 0 0 2
0 1 -7 3
>> X(2,3)
ans =
0
>> X(3,4)
ans =
3
Pero en una matriz también es posible visualizar todos los elementos de una fila o
de una columna, para ello hacemos X( i,:)
>> X(2,:)
ans =
5 0 0 2
>> X(:,3)
ans =
5
0
-7
1 4 5 8
5 0 0 2
0 1 -7 3
>> X(2:3)
ans =
5 0
>> X(2:4)
ans =
5 0 4
>>x = [2 4 6 8 10];
>> x-2 % Resta 2 a cada elemento de x
ans =
0 2 4 6 8
>>2* x-1 % multiplica por 2 cada elemento de x, y le
resta 1
ans =
3 7 11 15 19
Las operaciones matemáticas entre arrays no son tan simples como las que ocurren
entre escalares y arrays. Las operaciones entre arrays de diferentes longitudes son difíciles
de definir.
>> a = [1 2 3 4 5];
>> b = [1 3 5 7 9];
>> a + b % Suma los dos vectores elemento a elemento
ans =
2 5 8 11 14
>> ans-b % Resta b del resultado mas reciente.
ans =
1 2 3 4 5
>> c = [1:2;3:4];
>> d = [5:6;7:8];
>> c*d % Multiplicación matricial
ans =
19 22
43 50
>> a= [1 2 3 4 5]
>> b= [1 3 5 7 9]
>> a.^2 % Eleva al cuadrado los elementos de a
ans =
1 4 9 14 25
>> b.^a % Eleva los elementos de b a los elementos de a
ans =
1 9 125 2401 59049
OPERADOR DESCRIPCIÓN
< menor que
menor o igual
<=
que
> mayor que
mayor o igual
>=
que
== igual a
~= no igual a
>> A= [1: 8]
A=
1 2 3 4 5 6 7 8
>> B = [2:9]
B=
2 3 4 5 6 7 8 9
>> % Vamos a encontrar los elementos de A que son mayores que 4
>> % Donde A>4, aparecerá un uno, y donde A< 4 aparecerá un cero
>> mayor = A>4
mayor
0 0 0 0 1 1 1 1
>> % Ahora los elementos de A que son iguales a los elementos de B
>> igual = A == B
igual
0 0 0 0 0 0 0 0
OPERADOR DESCRIPCIÓN
& AND
| OR
~ NOT
>> A = [1 : 9]
A=
1 2 3 4 5 6 7 8 9
>>no_mayor = (A>4) % Niega los números mayores que 4 del
vector A
no_mayor =
1 1 1 1 0 0 0 0 0
FUNCIÓN DESCRIPCIÓN
xor(x) Operación OR exclusiva
any(x) Devuelve 1 si algún elemento del vector "x" es no nulo. Si se
trata de una matriz, devuelve 1 para cada columna de la
Hay veces en MATLAB que es deseable manipular texto, por ejemplo, para poner
etiquetas o títulos en las gráficas. A este texto, MATLAB le llama "cadena de caracteres" o
simplemente "cadenas". Una cadena de caracteres es simplemente texto rodeado por
comillas simples.
Si se quiere mostrar los elementos del 23 al 28, se realiza de la misma forma que
cuando tratamos vectores fila:
>> u = t(23:28)
u=
cadena
Si se quiere mostrar los elementos del 23 al 28, pero en orden inverso, se realiza de
la misma forma que cuando tratamos vectores fila:
>> u = t(28:-1:23)
u=
anedac
Como con las matrices, las cadenas de caracteres pueden tener múltiples filas, pero
cada fila debe tener un número igual de columnas. Por tanto, si no coincide el número de
caracteres en todas las filas, será necesario completar con espacios en blanco:
También son posibles las operaciones matemáticas sobre cadenas, sin embargo,
una vez que se realiza una operación matemática sobre una cadena, ésta no se visualiza ya
como una cadena, sino como un array de números en el estándar ASCII.
Para ver la representación ASCII de una cadena, podemos tomar el valor absoluto o
sumarle cero. Por ejemplo, para ver la representación ASCII de la cadena "m":
>> m = ‘ABCDEFG’
m=
ABCDEFG
>> n = abs(m)
n=
65 66 67 68 69 70 71
>> n = m+0
n=
65 66 67 68 69 70 71
>>help strfun
Históricamente, MATLAB fue escrito para simplificar los cálculos, de cálculo lineal
que aparece en muchas aplicaciones. Existiendo los operadores aritméticos de matrices,
que en matlab están definidas como las operaciones usuales.
>>A = [ 0 6 0 ; 8 6 8 ; 3 2 2];
>>B = [29 -21 27; 11 13 5; -19 19 19];
>> C = A + B
C=
29 -15 27
19 19 13
-16 21 21
>> X = [1 -3 5; 4 1 6; 6 -1 2];
>>Y = [2 3 2; 6 0 3; 4 1 -1];
>> Z = X-Y
Z=
-1 -6 3
-2 1 3
2 -2 3
>> D = [3 -2 7; 6 5 4];
>> E = 2 * D
E=
6 -4 14
12 10 8
Es decir sean A = (a ij) una matriz de orden mxn, B = (b ij) una matriz de orden
nxp, entonces la matriz C = (c ij) es el producto de A con B resultando una matriz de
orden mxp.
C ij
= ∑a b
k
ik k j
Ejemplo:
⎡3 0 2⎤ ⎡2 1⎤ ⎡8 3⎤
⎢
A= 1 2 0
⎥ ⎢ ⎥
y B = 0 1 entonces A x B =
⎢2 3⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣0 1 1 ⎥⎦ ⎢⎣1 0⎥⎦ ⎢⎣1 1⎥⎦
En matlab tenemos:
>> F = [3 -2 7; 6 5 4; 0 4 9]
>>G = [1 7; 0 4; 2 9]
>> H = F x G
H=
17 76
14 98
18 97
Por los conocimientos adquiridos en álgebra lineal, existen varias clases de matrices
que es posible trabajarlas en Matlab.
⎡ 2 3⎤
t ⎢
= 1 2⎥⎥
A ⎢
⎢⎣− 4 5⎥⎦
´
En matlab la matriz transpuesta se obtiene utilizando el apostrofe A como
ejemplo tenemos:
>> A = [ 1 -3 0 -2; 3 -12 -2 -6;-2 10 2 5; -1 6 1 3]
A=
1 -3 0 -2
3 -12 -2 -6
-2 10 2 5
-1 6 1 3
>> Y = A'
Y=
1 3 -2 -1
-3 -12 10 6
0 -2 2 1
-2 -6 5 3
Una matriz dada es simétrica cuando la matriz transpuesta es igual a la matriz dada.
A = A'
1.23.3 Matriz inversa:
P=
0 1.0000 0.0000 2.0000
1.0000 -1.0000 -2.0000 2.0000
0 1.0000 3.0000 -3.0000
-2.0000 2.0000 3.0000 -2.0000
Ejemplo:
>> A = [ 1 -3 0 -2; 3 -12 -2 -6;-2 10 2 5; -1 6 1 3]
A=
1 -3 0 -2
3 -12 -2 -6
-2 10 2 5
-1 6 1 3
>> det(A)
ans =
-1
Por álgebra lineal conocemos que el rango de una matriz es igual al número de filas
no nulas que quedan en la última iteración de las sucesivas transformaciones elementales
que se hacen con la matriz.
0 2 -4
1 4 -5
3 1 7
0 1 -2
2 3 0
>> Z= rank(C)
Z=
2
>> A = eye(3)
A=
1 0 0
0 1 0
0 0 1
>> B=eye(4)
B=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Matriz en donde todos los elementos son unos, y se obtiene con el comando ones(
m,n).
>> B = ones (3,2)
B= 1 1
1 1
1 1
diag(A) .Este comando permite obtener los elementos de la diagonal de una matriz
dada.
Ejemplo: >> A = [1 -3 0; 3 -2 -6; 10 2 5]
A=
1 -3 0
3 -2 -6
10 2 5
>> diag(A)
1
-2
5
rand(p) : Este comando genera una matriz de orden nxn en forma aleatoria donde
sus elementos son uniformemente distribuidos en el intervalo ( 0, 1).
>> X = rand(2)
X=
0.447 0.7919
0.6154 0.9218
norm(v,p): Este comando calcula la norma de un vector v. donde p>1, los valores
comunes son 1 , 2 ,inf , esto significa que :
Ejemplo:
>> A = [2 0 1 -4]
>> norm(A,1)
7
>> norm(A,2)
4.5826
>> norm(A, inf)
4
>>A = [1 2; 3 4]
>>[ V, D] = eig(A)
V=
-0.8246 -0.4160
0.5658 -0.9094
D=
-0.3723 0
0 5.3723
Donde V es una matriz que contiene a los vectores propios ordenados en columnas
y D es una matriz diagonal que contiene los valores propios.
>> u = [13 -5 1]
>> length(u)
3
>> A = [4 1 3;-5 2 1]
>> size (A)
2 3
Una de las aplicaciones del álgebra lineal es la solución de ecuaciones lineales, así por
ejemplo, si disponemos del siguiente sistema de ecuaciones:
x1 + 2 x 2 + 3 x 3 = 366
4 x1 + 2 x 2 + 6 x 3 = 804
7 x1 + 8 x 2 + = 366
Estas ecuaciones se pueden organizar en una ecuación matricial, de la forma "A X = B":
⎡1 2 3⎤ ⎡ x1 ⎤ ⎡366⎤
⎢4 5 6⎥ x ⎢ ⎥ = ⎢804⎥
⎢ ⎥ ⎢ x2 ⎥ ⎢ ⎥
⎢⎣7 8 0⎥⎦ ⎢⎣ x3 ⎥⎦ ⎢⎣ 351⎥⎦
Para encontrar la solución a este sistema, nos encontramos con numerosos métodos.
Analíticamente, como A X = B, la solución se escribe como X = A-1 · B, donde A-1 es la
matriz inversa de A.
Para resolver este problema de esta forma, es necesario introducir directamente las
matrices A y B, que ya hemos definido anteriormente:
>> A = [1 4 7; 2 5 8; 3 6 0]
A=
1 2 3
4 5 6
7 8 0
>>B =[366;804;351]
B=
366
804
351
Primeramente realizamos un análisis del tipo o tipos de solución que el sistema de
ecuaciones ha de tener, para ello tememos que hallar el determinante de la matriz A, y
esto se halla mediante el comando det(A), visto anteriormente, es decir si el determinante
de la matriz es distinto de cero tendrá Una solución única.
>> det ( A)
ans =
27
>> x = inv(A) * B
x=
25.0000
22.0000
99.0000
3x + 4y + z + 2w = -3
3x + 5y + 3z + 5w = -6
6x + 8y + z +5 w = -8
3x + 5y + 3z +7 w = -8
A=L U
>> A = [3 4 1 2; 3 5 3 5;6 8 1 5; 3 5 3 7]
A=
3 4 1 2
3 5 3 5
6 8 1 5
3 5 3 7
1.0000 0 0 0
0.5000 1.0000 0 0
0.5000 0 1.0000 0
0.5000 1.0000 0 1.0000
U=
0 1 0 0
1 0 0 0
0 0 0 1
P*A=L*U
P*AX=P*B
Luego como:
L*U*X=P*B
>> X = inv (L * U)*(P * B)
X=
2
-2
1
-1
En el primer caso se requiere que las dos matrices A y B tengan el mismo numero
de filas, por lo que la solución de X tendrá el mismo numero de columnas de B, la
dimensión de la fila es igual a la dimensión de la columna de A.
Sea: 3 x +4 y +z +2w = -3
3x+5y +3z+5w = -6
6x+8y + z +5w = -8
3x+5y +3z+7w = -8
>> A = [3 4 1 2; 3 5 3 5; 6 8 1 5; 3 5 3 7]
A=
3 4 1 2
3 5 3 5
6 8 1 5
3 5 3 7
>> B = [-3;-6;-8;-8]
B=
-3
-6
-8
-8
>> X =A \ B
X=
2
-2
1
-1
3 x +4y+ 2z = 9
3 x + y + 5z = 9
6 x + y + 5z = 12
-2 x + 3y+7z = 8
>> A = [3 4 2; 3 1 5; 6 1 5; -2 3 7]
A=
3 4 2
3 1 5
6 1 5
-2 3 7
3 x +4y +2 z =8
3 x + y + 5 z = 11
>> A = [3 4 2; 3 1 5]
A=
3 4 2
3 1 5
>> X = A \ B
X=
0
1.0000
2.0000
4x +4y+ z + 2 w = -3
3x +5 y + 3z + 5 w = -6
6x +8 y + z + 5 w = -8
3x +5y+ 3z + 7 w = -8
X=
2
-2
1
-1
4 x+4y + z +2w = -3
3 x +5 y +3z +5w = -6
6 x +8 y +z +5 w = -8
3x +5y +3z +7 w = -8
MATLAB permite el trabajo ágil con polinomios. El programa habilita varios comandos
para el manejo algebraico de las expresiones poli nómicas. Estas expresiones pueden
tratarse también como expresiones algebraicas en general, pero MATLAB también incluye
comandos específicos.
1.31 Raíces.
X 4 - 12x 3
+ 0x 2
+ 25x + 116
En matlab se introduce como:
Obsérvese que se deben incluir los términos con coeficientes nulos, poniendo un cero
en su lugar. Las raíces de un polinomio se encuentran utilizando la función roots:
>> r = roots(p)
r =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 – 1.4672i
>>
También es posible construir un polinomio cuando nos dan sus raíces, con la orden
"poly".
>> d = a + b
d=
2 6 12 20
>>
Cuando dos polinomios son de diferente grado, el que tiene menor orden debe
rellenarse en la parte delantera con ceros para hacer que tenga el mismo grado efectivo que
el polinomio de mayor grado.
>> [ q , r ] = deconv( c , b )
q=
1 2 3 4
r =0 0 0 0 0 0 0
Este resultado dice que "b" dividido entre "c" da el polinomio cociente "q" y el resto
"r", que es cero en este caso, puesto que el producto de "b" y "q" es exactamente "c" ("c" se
formó previamente como el producto de "b" y "q" = "a")