Está en la página 1de 64

INTRODUCCIÓN A

OCTAVE

Edwin Chávez Ramírez


Edwin Chávez Ramírez
UNMSM, 2018 - I
Introducción
 ¿Qué es OCTAVE?,
OCTAVE 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

Edwin Chávez Ramírez


capacidades más atractivas es la de realizar una amplia variedad de
gráficos en dos y tres dimensiones. OCTAVE.

Está disponible para las plataformas Unix, Windows, Mac OS y


Android. Está diseñado 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.
 Cuenta con paquetes de funciones especializadas
Introducción
 En Métodos Numéricos es importante poder
realizar rápidamente y con exactitud los cálculos
elementales que son necesarios para los

Edwin Chávez Ramírez


diferentes ejercicios.

 OCTAVE es una herramienta potentísima, casi


estándar para cálculos en muchas ramas de la
Ingeniería, y de uso razonablemente simple.
Entorno de OCTAVE
 Una vez iniciado OCTAVE, nos encontramos con la
pantalla de la figura, donde se observan los diferentes
menús y ventanas. El trabajo inicial se realiza en la
ventana de comandos “Command Window”.

Edwin Chávez Ramírez


Elementos básicos del escritorio de OCTAVE

 Command Windows: Donde se ejecutan todas las instrucciones y


programas. Se escribe la instrucción o el nombre del programa y se da a
Enter.

Command History: Muestra los últimos comandos ejecutados en Command

Edwin Chávez Ramírez



Windows. Se puede recuperar el comando haciendo doble

 Current directory: Situarse en el directorio donde se va a trabajar

 Help (también se puede usar desde comand windows)

 Workspace: Para ver las variables que se están usando y sus dimensiones
(si son matrices)

 Editor del OCTAVE: Todos los ficheros de comandos OCTAVE deben de llevar
la extensión .m
Introducción
Elementos básicos del escritorio de OCTAVE

Edwin Chávez Ramírez


Current
directory

Command
Windows

Command
History
Elementos básicos del escritorio de OCTAVE

Abrir el OCTAVE. Usar View para sacar las ventanas que hagan falta.

 Comand Windows: Donde se ejecutan todas las instrucciones y programas.


Se escribe la instrucción o el nombre del programa y se da a Enter.
Hacer ejemplo en línea de comandos: x=2*3, y mirar en workspace la

Edwin Chávez Ramírez


variable x
 Current directory: Situarse en el directorio donde se va a trabajar

 Help (también se puede usar desde comand windows)


 (índice, search, DEMOS).
 Workspace: Para ver las variables que se están usando

 Editor del OCTAVE: Todos los ficheros de comandos OCTAVE deben de llevar
la extensión .m
En current directoy crear un fichero nuevo main_prueba.m, decirles lo de main.
Correr el programa main_prueba.
Algunos comentarios sobre la ventana de comandos

 Se pueden recuperar instrucciones con las teclas ↓↑

Edwin Chávez Ramírez


 Se puede mover por la línea de comandos con las teclas → ←. Ir
al comienzo de la línea con la tecla Inicio y al final con Fin. Con
Esc se borra toda la línea.

 Se puede cortar la ejecución de un programa con Ctrl+C


Números y operaciones
Datos numéricos:

 No hace falta definir variables enteras, reales, etc. como en otros lenguajes
Números enteros: a=2

Edwin Chávez Ramírez


 Números reales: x=-35.2


 Máximo de 19 cifras significativas
 2.23e-3=2.23*10-3

 Precisión y formatos: Por defecto tiene un formato corto, pero se pueden


usar otros
>> format long (14 cifras significativas)
>> format short (5 cifras significativas)
>> format short e (notación exponencial)
>> format long e (notación exponencial)
>> format rat (aproximación racional)

Ver en menú de File: Preferences → Command Windows


Números y operaciones
Datos numéricos:
 Son sensibles a las mayúsculas: x=5, X=7

 Información sobre variables que se están usando y sus dimensiones (si son
matrices): Workspace. También tecleando

Edwin Chávez Ramírez


>> who
>> whos (da más información)

 Para eliminar alguna variable se ejecuta


>> clear variable1 variable2
 Si se quieren borrar todas las variables: >> clear

 Constantes características: pi=, NaN (not a number, 0/0), Inf= .

 Números complejos: i=sqrt(-1) (sólo se puede usar i o j), z=2+i*4, z=2+4i


Números y operaciones
Operaciones aritméticas elementales:

 Suma: +, Resta -

Edwin Chávez Ramírez


 Multiplicación: *, División: /

 Potencias: ^

 Orden de prioridad: Potencias, divisiones y multiplicaciones y por


último sumas y restas. Usar () para cambiar la prioridad
Conceptos básicos
 Para arrancar OCTAVE, se procede como con
cuaquier programa Windows
 Una vez arrancado aparece el cursor con el

Edwin Chávez Ramírez


símbolo (>>) o (EDU >>), indicando que
puedes introducir órdenes.
 La utilización más básica de OCTAVE es
como calculadora.
 Así por ejemplo, puedes calcular
cos(5) · 27.3,

Edwin Chávez Ramírez


para lo cual debes introducir:
>>cos(5)*2^7.3
ans =
44.7013
 OCTAVE mantiene en memoria el último
resultado. Caso de que ese cálculo no se
asigne a ninguna variable, lo hace a una
variable por defecto de nombre ans.

Edwin Chávez Ramírez


 Si quieres referirte a ese resultado, hazlo a
través de la variable ans, y si no asignas ese
nuevo cálculo a ninguna variable, volverá a
ser asignado a ans.
>>log(ans)
ans =
3.8000
 En este momento no sabemos si este ha sido
un logaritmo decimal o neperiano (natural).
Para saberlo, debemos pedir ayuda sobre el
comando log utilizando:
>>help log

Edwin Chávez Ramírez


LOG Natural logarithm.
LOG(X) is the natural logarithm of the elements
of X.
Complex results are produced if X is not
positive.
See also LOG2, LOG10, EXP, LOGM.
 Por defecto, los resultados aparecen con 4
cifras decimales. Si necesitares más
precisión en los resultados, puedes utilizar la
orden format long y repite los cálculos:

Edwin Chávez Ramírez


>>format long
 Para recuperar una orden y ejecutarla otra
vez o modificarla se usan la flechas arriba y
abajo del cursor.
>>cos(5)*2^7.3
ans =
44.70132670851334
Introducción
Variables: es la etiqueta que identifica una porción de memoria;
OCTAVE diferencia entre mayúsculas y minúsculas

Para ver las variables definidas en un instante determinado se teclea:


>> who
o bien
>> whos

Edwin Chávez Ramírez


Para eliminar alguna variable se ejecuta
>> clear variable1 variable2
Expresiones numéricas: son un conjunto de números, funciones y variables
previamente definidas, relacionados todos ellos por operadores aritméticos.
Si una expresión es demasiado larga se indica mediante ...

Datos lógicos : Los datos tipo lógico representado por Verdadero y Falso son
manejados con los números 1 y 0 respectivamente.

Ejemplo: Digitar en la ventana de comandos:


>> 7 * 10 > 40
ans =
1
>> P = (5 * 7 ~= 35)
P=
0
Introducción_____________________________________

Funciones de OCTAVE:
nombre(argumento)
• sqrt (x) raiz cuadrada
• abs(x) módulo de x
• conj(z) conjugado de un complejo

Edwin Chávez Ramírez


• real(z), imag(z) parte real e imaginaria de z respectivamente
• exp(x) calcula ex, siendo x real o complejo
• sin(x) asin(x) [-/2 /2] cos(x) acos(x) [0 ] tan(x)
• atan(x) [-/2 /2] angle(z) log(x) (en base e) log10(x)
• rats(x) x en racional rem(x,y) resto de x/y round(x) sign(x)
Comandos de ayuda:
• help
• lookfor
• what ficheros .m y .mat del directorio actual
• dir ficheros del directorio actual
Introducción_____________________________________
• type nombre_fichero Muestra el contenido del fichero
• delete nombre_fichero Borra el fichero
• cd cambia de directorio
• pwd indica el directorio actual
• which nombre_fichero india el directorio donde esta
• ! Abre una ventana de MSDOS que se cierra cuando volvemos a OCTAVE

Edwin Chávez Ramírez


• mkdir Name crea un directorio con el nombre Name
• rmdir Name borra el directorio de nombre Name

startup.m fichero de arranque al ejecutar OCTAVE.

Para guardar en un fichero los comandos que se ejecutan en una sesión se


pone
>> diary nombre_fichero
...
>> diary off
Introducción_____________________________________
diary tema1
clear 42 . 1768  234
J 
Ejercicio 1.1 Calcular el valor de la expresión 2
10
 10247

Ejercicio 1.2 Calcular el valor de la expresión 5


14
 5 . 876 * 10

Edwin Chávez Ramírez


9 . 8 * 10
H 
* 10  10
5 6
9 . 987
Y escribir el resultado en al menos 2 formatos
Ejercicio 1.3 Calcular 3 sen ( 32 º15 ' )
I 7  3
42 . 1

Ejercicio 1.4 Según Hill y Lounasmaa, la ecuación de la curva de


inversión del helio es P  21 . 0  5 . 44 T  0 . 132 T 2
Donde la presión vienen dada en atmósfera y la temperatura T en
grados Kelvin. Calcular el valor de la presión a una temperatura de
293 ºK. Calcular el valor de la temperatura para una presión de 1N/
m2. Nota: 1N/m2=9.265*10-6atm
Introducción_____________________________________

diary off
dir

Edwin Chávez Ramírez


type tema1
Ejercicios:
 Averiguar el comando para Borrar archivos y borre todos los
archivos que comiencen con m
 Realizar la siguiente operación: 2.72.1 + log10 108.2.
Realizar la siguiente operación: e2.72.1+log10 108.2.

Edwin Chávez Ramírez


 Cuando necesitamos referiros a determinados cálculos podemos


asignarlos a variables y así reutilizarlos después mediante esas
variables. Por ejemplo:
Calcule cos(5) · 27.3 y asignar su valor a la variable x.
>>x=cos(5)*2^7.3
x=
44.70132670851334
>>y=log(x)
y=
3.80000318145901
Ejercicios

 Ejercicio 1.3 Realizar la siguiente operación:


2.72.1+log10 108.2 y asignarla a la variable x.

Edwin Chávez Ramírez


 Ejercicio 1.4 Realizar la siguiente operación:
e2.72.1+log10 108.2 y asignarla a la variable t.
VECTORES Y MATRICES

Edwin Chávez Ramírez


Edwin Chávez Ramírez
UNMSM, 2018 - I
VECTORES Y MATRICES
 Las matrices son el tipo fundamental de
dato en OCTAVE.
» A=[1 3 5; 6 9 2; 4 8 7]

Edwin Chávez Ramírez


» A^2+3*A
A=
ans =
1 3 5
6 9 2 42 79 61
4 8 7 86 142 68
92 164 106
» det(A)

ans = Matrix Laboratory


-- datos son matrices
-- reglas del álgebra lineal
5
Vectores y matrices_______________________________
Los vectores pueden ser vectores fila o vectores columna
Vectores fila; los elementos de una misma fila están separados por
blancos o comas,
>> v =[2 3 4]
Vectores columna: los elementos de una misma columna están

Edwin Chávez Ramírez


separados por intro o por caracteres punto y coma (;).
>> w =[2;3;4;7;9;8]
La dimensión de un vector se obtiene por el comando length(nombre
del vector) sub_w=w(i:k:j)

Generación de vectores:
• Especificando el incremento de sus componentes v=a:h:b;
• Especificando su dimensión linspace(a,b,n) si se omite n toma 100
por defecto; el incremento es k=(b-a)/(n-1)
• Con componentes logarítmicamente espaciadas logspace(a,b,n)
genera un vector fila de n puntos logarítmicamente espaciados entre
10a y 10b. Si se omite el valor de n se toma 50
Vectores y matrices_______________________________
Operaciones con escalares:
v+k adición o suma
v-k sustracción o resta
v*k multiplicación
v/k divide por k cada elemento de v

Edwin Chávez Ramírez


k./v divide k por cada elemento de v
v.^k potenciación cada componente de v esta elevado a k
k.^v potenciación k elevado cada componente de v
Operaciones entre vectores:
v+w adición o suma
v-w sustracción o resta
v.*w multiplicación cada elemento de v por el correspondiente de w
v./w divide cada elemento de v por el correspondiente de w
v.^w potenciación cada componente de v esta elevado al
correspondiente de w
Producto escalar de vectores v*w calcula el producto escalar de v por
w
Vectores y matrices_______________________________
Funciones de OCTAVE específicas para vectores:

sum(v) suma
prod(v) producto
sort(x) Ordena de menor a mayor el vector x

Edwin Chávez Ramírez


find(x<n) Busca los elementos del vector x, menores a n
v' transposición de vectores (filas  columnas)
dot(v,w) producto escalar de vectores
cross(v,w) producto vectorial de vectores
[y,k]=max(v) valor máximo de las componentes de un vector k indica
la posición, lo mismo para min(v) valor mínimo
iscolumn(A) Controla si isemty(A) Isequal(B,D)
es columna o no, la Retorna 0 si no es Retorna 1 si son
variable A, B vacío, caso contrario iguales, caso
retorna 1 contrario retorna 0
Ejemplo:
>> A=[2;3; 5] Ejemplo: Ejemplo:
A=

Edwin Chávez Ramírez


>> isempty(A) >> D=[3 4 5 6];
2 ans = >> isequal(B,D)
3 0 ans =
5 >> C=[ ]; 0
>> iscolumn(A) >> isempty(C) >> T=[2 3 5];
ans = ans = >> isequal(B,T)
1 1 ans =
>> B=[2 3 5] 1
B=
235
>> iscolumn(B)
ans =
0
isequalwithequalnans(A, B) isfinite(A) isfloat(A)
Compara vectores con Si es infinito devuelve Determinar si la
elementos NaN 0 caso contrario entrada es punto
devuelve 1 flotante
Ejemplo:
>> A=[3 4 NaN 8]; Ejemplo: Ejemplo:
>> B=A; >>A = [-2 0 1 2]; >> a=14.6; whos a

Edwin Chávez Ramírez


>> isequal(A,B) isfinite(1./A) Name Class
ans = ans = a double
0 101 >> isfloat(a)
>> isequalwithequalnans(A, ans =
B) 1
ans = >> b=uint8(a); whos b
1 Name Class
b uint8
>> isfloat(b)
ans =
0
Isinf(A) Isinteger(A)
Devuelve 1 si es infinito, Duelve 1 si es un tipo uint* y caso contrario
caso contrario devuelve 0 devuelve 0
int8 uint8 int16
Ejemplo: uint16 int32 uint32
>> B = [-2 -1 0 1 2]; int64 uint64
>> A=1./B;
>> isinf(A)

Edwin Chávez Ramírez


Ejemplo:
ans = >> isinteger(uint8(9))
00100 ans =
1
>> isinteger(9)
ans =
0
Vectores y matrices_______________________________
Ejemplo: Cálculo de errores relativos
Supongamos que para resolver una ecuación diferencial ordinaria hemos
utilizado.
-Un método analítico mediante el cual sabemos que su solución en el intervalo
[0,1] es y(x)=x2+cos(x).
-Un método numérico para aproximar la solución en el intervalo [0,1] con

Edwin Chávez Ramírez


parámetro de discretización 0.2

Ángulo (radianes) Solución aproximada


0 1.0030
0.2 1.0234
0.4 1.0825
0.6 1.1869
0.8 1.3342
1 1.5415
Vectores y matrices_______________________________

Para definir una matriz no hace falta establecer de antemano su tamaño (de hecho,
se puede definir un tamaño y cambiarlo posteriormente). OCTAVE determina el
número de filas y de
columnas en función del número de elementos que se proporcionan (o se utilizan).
Las matrices se definen por filas; los elementos de una misma fila están
separados por blancos o comas, mientras que las filas están separadas por

Edwin Chávez Ramírez


pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el
siguiente comando define una matriz A de dimensión (3x3):
» A=[1 2 3; 4 5 6; 7 8 9]
La respuesta del programa es la siguiente:
A=
123
456
789

matriz traspuesta: En OCTAVE el apóstrofo (') es el símbolo de trasposición


matricial.

matriz inversa: la inversa de A se calcula con la función inv( ) B=inv(A).


Vectores y matrices_______________________________
En OCTAVE se accede a los elementos de un vector poniendo el índice entre
paréntesis (por ejemplo x(3) ó x(i)). Los elementos de las matrices se acceden
poniendo los dos índices entre paréntesis, separados por una coma (por ejemplo
A(1,2) ó A(i,j)). Las matrices se almacenan por columnas (aunque se introduzcan
por filas, como se ha dicho antes), y teniendo en cuenta esto puede accederse a
cualquier elemento de una matriz con un sólo subíndice. Por ejemplo, si A es una

Edwin Chávez Ramírez


matriz (3x3) se obtiene el mismo valor escribiendo A(1,2) que escribiendo A(4).

Los operadores matriciales de OCTAVE son los siguientes:

+ adición o suma
– sustracción o resta
* multiplicación
' adjunta (transpuesta o transpuesta conjugada)
^ potenciación
\ división-izquierda
/ división-derecha
.* producto elemento a elemento
./ y .\ división elemento a elemento
.^ elevar a una potencia elemento a elemento
Vectores y matrices
Definición de matrices:
 No hace falta establecer de antemano su tamaño (se puede definir
un tamaño y cambiarlo posteriormente).

Las matrices se definen por filas; los elementos de una misma fila

Edwin Chávez Ramírez



están separados por blancos o comas. Las filas están separadas
por punto y coma (;).
» M=[3 4 5; 6 7 8; 1 -1 0]

 Matriz vacía: M=[ ];

 Información de un elemento: M(1,3), de una fila M(2,:), de una


columna M(:,3).

 Cambiar el valor de algún elemento: M(2,3)=1;

 Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)[ ];


Vectores y matrices_______________________________

diag(A) Obtencion de la diagonal de una matriz. sum(diag(A)) calcula la traza de


la matriz A
diag(A,k) busca la k-ésima diagonal.

norm(A) norma de una matriz, calcula el máximo de los valores absolutos de los

Edwin Chávez Ramírez


elementos de A

Generación de matrices:
•Generación de una matriz de ceros, zeros(n,m)
•Generación de una matriz de unos, ones(n,m)
•Inicialización de una matriz identidad eye(n,m)
•Generación de una matriz de elementos aleatorios rand(n,m)
• Matrices con diagonal dada diag(v), diag(v,k)
• [X Y] columnas, [X; Y] filas
Vectores y matrices_______________________________
Desde la versión 5 de OCTAVE se admiten variables subindicadas
multidimensionalmente
a=ones(2,2,3)
a(:,:,1)= 1 1
11 a(:,:,2)= 1 1 a(:,:,3)= 1 1

Edwin Chávez Ramírez


11 11

Matrices dispersas o huecas son aquellas que tienen gran cantidad de


elementos nulos

>> a= sparse(i,j,c,m,n)
m indica filas, n columnas, c vector que contiene los elementos no nulos i,j son
dos vectores que indican la posición de cada elemento de c
para visualizar la matriz entera >>full(a)
[i2,j2,c2]=find(a)
Vectores y matrices_______________________________
Ejemplo1: Tomemos la siguiente matriz

 12 4 0 0 0 
 
 7 3 0 0 8 

Edwin Chávez Ramírez


 0 0 0 0 0

 
 0 0  13 11 0 
 
 0 0 2 7 4 

Y trabajemos con ella como una matriz dispersa, para ello definimos el vector
de elementos no nulos, el vector definido por las filas y el vector definido por
las columnas
Vectores y matrices_______________________________
m=[12,-4,7,3,-8,-13,11,2,7,-4];
f=[1,1,2,2,2,4,4,5,5,5];
c=[1,2,1,2,5,3,4,3,4,5];
a=sparse(f,c,m,5,5)
full(a)
m1=[12,7,-4,3,-13,2,11,7,-8,-4];

Edwin Chávez Ramírez


f1=[1,2,1,2,4,5,4,5,2,5];
c1=[1,1,2,2,3,3,4,4,5,5];
b=sparse(f1,c1,m1,5,5];
full(b)
a=sparse(f,c,m)
s=a+b
p=a*b
[f2,c2,m2]=find(p)
e=full(sparse(f2,c2,m2))
Funciones para vectores y
matrices
Funciones de OCTAVE para vectores y matrices:
 sum(v) suma los elementos de un vector

 prod(v) producto de los elementos de un vector

Edwin Chávez Ramírez


 dot(v,w) producto escalar de vectores

 cross(v,w) producto vectorial de vectores

 mean(v) (hace la media)

 diff(v) (vector cuyos elementos son la resta de los elemento de v)

 [y,k]=max(v) valor máximo de las componentes de un vector (k indica la


posición), min(v) (valor mínimo). El valor máximo de una matriz M se
obtendría como max(max(M)) y el mínimo min(min(v))

 Aplicadas algunas de estas funciones a matrices, realizan dichas


operaciones por columnas.
Funciones para vectores y
matrices
Funciones de OCTAVE para vectores y matrices
 [n,m]=size(M) te da el número de filas y columnas

 matriz inversa: B=inv(M), rango: rank(M)

Edwin Chávez Ramírez


 diag(M): Obtencion de la diagonal de una matriz. sum(diag(M))
calcula la traza de la matriz A. diag(M,k) busca la k-ésima diagonal.

 norm(M) norma de una matriz (máximo de los valores absolutos de


los elementos de A)

 flipud(M) reordena la matriz, haciendo la simétrica respecto de un


eje horizontal. fliplr(M) ) reordena la matriz, haciendo la simétrica
respecto de un eje vertical

 [V, landa]=eig(M) da una matriz diagonal landa con los autovalores y


otra V cuyas columnas son los autovectores de M
Vectores y matrices_______________________________
Ejercicio 2.1 Dados los vectores definidos por
x=(1,4.5,7.8) y=(sen(90),cos(45),0)
Realizar los cálculos siguientes:
x+y;el producto escalar de x e y; calcular el ángulo que forman ambos
vectores.
Ejercicio 2.2 Para un laboratorio se compran los materiales

Edwin Chávez Ramírez


especificados en la tabla siguiente.

Ref. arti. Precio Cantidad


1520 1146 200
1621 3450 250
1428 6225 150
1429 7100 150
1628 8500 100
Utilizar vectores y el producto de vectores para calcular el coste de cada
producto y el total a pagar (la tabla de precios no incluye IGV, debiendo
por tanto aplicarse un 18% de incremento.
Vectores y matrices_______________________________

Ejercicio 2.3 Dadas las matrices a y b calcular: a+b, a+0, BI.


Comprobar que el producto de matrices no es conmutativo. Elegir la
submatriz de a formada por la primera columna y la tercera fila y la

Edwin Chávez Ramírez


submatriz de b formada por la segunda y tercera columna y calcular el
producto 1 2 3  4 2 1 
   
a  2 3 4  b  2 0 4 
4 2 5  1  2 5 
   
Ejercicio 2.4 Utilizar matrices para construir una tabla que contenga:
En la 1º columna la variable grados celsius en el intervalo [0 100] con un
paso de 2. En la 2º columna su valor en grados fahrenheit y en la 3º en
grados kelvin. ¿Cómo guardarías en un fichero la tabla anterior?

9 * celsius
 32
5
Vectores y matrices_______________________________

Ejercicio 2.5 Considérese la matriz tridiagonal definida por:

i, si i  j 
 j, si i  j  1 

Edwin Chávez Ramírez


 
a ij   1  i , j  n
 j, si i  j - i 
0, en
Introducir la matriz enelotro
espacio  como matriz
de trabajo
caso
dispersa para n=10
POLINOMIOS

Edwin Chávez Ramírez


Edwin Chávez Ramírez
UNMSM, 2018 - I
POLINOMIOS
Los polinomios se representan en matlab por un vector fila de dimensión
n+1 siendo n el grado del polinomio.

Edwin Chávez Ramírez


Dado un polinomio
x3+2x
se representa por
>> pol1=[1 0 2 0]
para el cálculo de las raíces de un polinomio existe el comando roots.
>>raices=roots(pol1) (da un vector columna, aunque pol1 es un vector
fila)
Polinomios______________________________________
Un polinomio puede ser reconstruido a partir de sus raíces con el comando
poly
>> p=poly(raices) (da un vector fila) **
en caso de que el argumento de poly fuera una matriz obtendríamos como
resultado el polinomio característico de la matriz. Así mismo si queremos
calcular los autovalores de la matriz bastaría con calcular las raíces del
polinomio característico.

Edwin Chávez Ramírez


Ejemplo1:
pol2=[2 4 0 1]; % definición del polinomio 2x3+4x2+1
raices=roots(pol2) % cálculo de sus raíces
pol2_n=poly(raices) % reconstrucción del polinomio
real(pol2_n) % ¿qué pasó?
Ejemplo2:
A=[1 2 3 ; 2 3 4; 4 2 5]; p=poly(A) % pol. característico
roots(p) % autovalores de A
Polinomios______________________________________
Para calcular el valor de un polinomio p en un punto dado x basta con utilizar
el comando polyval
>>y=polyval(p,x)
Ejemplo3:
p=[1 –1 –1 1] % definición del polinomio x3-x2-x+1
polyval(p,2)

Edwin Chávez Ramírez


Ejemplo4:
x=-2:0.1:2;
Y=polyval(p,x);
Para multiplicar y dividir polinomios tenemos los comandos especiales
conv(p1,p2) y deconv(p1,p2)
Ejemplo5:
p1=[1, -2, 1]; p2=[1,1]; p3=conv(p1,p2)
p4=deconv(p3,p2)
[p4,r]=deconv(p3,p2) % resto de la división
Polinomios______________________________________
Para conocer el resto de la división de polinomios basta con poner
>>[p4,r] = deconv(p3,p2)
El comando residue, permite el cálculo del desarrollo en suma de fracciones
simples del cociente p1/p2.
p2 debe tener raíces reales

Edwin Chávez Ramírez


El formato del comando es: >>[r,p,k] =residue(p1,p2)
donde:
r= vector columna con los numeradores
p= vector columna con las raices del denominador
k= vector fila con los coeficientes del polinomio independiente.

p 1( x ) r ( 1) r (n )
   k(x )
p 2( x ) x  p ( 1) x  p(n )
Polinomios______________________________________
>>[p1,p2]=residue(r,p,k) hace la operación inversa

Ejemplo6:
Descomponer en fracciones simples el cociente

x
3
 x 12

Edwin Chávez Ramírez


p1=[1 1 0 1] x
3
3x 4
2

p2=[1 –3 0 4]
[r,p,k]=residue(p1,p2)
rats(r)

x
3
 x 2 1 35 13 1
   1
x
3
3x 42
9( x  2) 3( x  2) 2
9( x  1)
[pol1,pol2]=residue(r,p,k)
Polinomios______________________________________

Para calcular la derivada de un polinomio tenemos el comando,


>>polyder(p)
Ejemplo7:
Dado el polinomio x3+6x2+1 su derivada es

Edwin Chávez Ramírez


p=[1, 6,0,1];
d=polyder(p) % es decir 3x2+12x
Polinomios______________________________________

Ejercicio3.1 Consideremos el polinomio p(x)=x-1. Calcular p(x)3 e identificar el


polinomio obtenido y calcular sus raíces
Ejercicio3.2 Según Hill y Lounasmaa, la ecuación de la curva de inversión del
helio es P=-21+5.44T-0.132T2 donde P viene dada en atmósferas y T en

Edwin Chávez Ramírez


grados Kelvin.
a) Calcular el valor de la presión a una temperatura de –268.25 ºC.
b) Calcular el valor de la temperatura para una presión de 3N/m2. Nota 1N/
m2=9.265e-6 atm.
Ejercicio 3.3 Calcular la solución general de la EDO
y(5)-y(4)+2y’’’-2y’’+y’-y=0
Ejercicio3.4 Calcular al integral

x
4
 2 x 1
I  dx
x 1
Polinomios______________________________________
Ejercicio3.1
p=[1 –1];
q=conv(p,p)
q=conv(q,p)
raices=roots(q)
format short

Edwin Chávez Ramírez


real(raices)

Ejercicio3.2
a) presion=[-0.132 4.55 –21.0];
presion0=polyval(presion,273.15-268.25)
b) presion1=3*9.265e-006;
presion(3)=presion(3)-presion1
temp=roots(presion)
Polinomios______________________________________
Ejercicio3.3
format long
p=[1 –1 2 –2 1 –1];
raices=roots(p)

der_p=polyder(p)

Edwin Chávez Ramírez


polyval(der_p,round(raices(2)))

La solución exacta es
y(x)=c1ex+c2sen(x)+c3cos(x)+c4xsen(x)+c5xcox(x)

dsolve(‘D5y-D4y+2*D3y-2*D2y+Dy-y=0’,’x’)
Polinomios______________________________________
Ejercicio3.4
numerador=[1 0 0 2 1];
denominador=[1 –1];
[cociente,resto]=deconv(numerador,denominador)

Edwin Chávez Ramírez


 3 
4 3 2
4 x x x
I  x  x 2  x  3  dx     3 x  4 ln( x  1)
 x 1  4 3 2

int(‘(x^4+2*x+1)/(x-1)’)
ECUACIONES LINEALES

Dado un sistema algebraico de ecuaciones lineales de la forma Ax=b. Lo


resolveremos por métodos clásicos y con funciones propias de matlab
Algunos comandos cuyos argumentos son matrices y resultan útiles para la

Edwin Chávez Ramírez


resolución de sistemas.

>>det(A) %determinante de una matriz cuadrada


>>inv(A) %inversa de una matriz cuadrada
>>rank(A) %rango de una matriz el orden del mayor menor con
determinante no nulo
Ejemplo1:
x=ones(4,4);v=[2 2 2 2];y=x+diag(v)
rank(y)
Ecuaciones lineales________________________________

Para ver si un sistema es compatible


Ax=b compatible >>rank(A)-rank([A,b])
Número de condición de una matriz

Edwin Chávez Ramírez


>>cond(A)
este número indica la sensibilidad de la solución de un problema con respecto
a cambios relativos en los datos de entrada. (es la relación entre
el mayor y el menor valor singular de la matriz, debe ser próximo a 1)
Ecuaciones lineales________________________________
Ejemplos de resolución de un sistema Ax=b:

Regla de Cramer
Ejemplo2: Dado un sistema Ax=b

A=[1,2,3;2,3,4;4,2,5]

Edwin Chávez Ramírez


b=[4;5;1];
%comprobamos que la matriz no es singular
det(A)
D1=A;D1(:,1)=b
D2=A;D2(:,2)=b
D3=A;D3(:,3)=b
x=[det(D1);det(D2);det(D3)]/det(A)
Ecuaciones lineales________________________________
La solución por Cramer es tediosa y poco eficaz.
Una primera posibilidad más cómoda.
Si la matriz es cuadrada y su determinante es distinto de cero.
Ainv=inv(A)
Y el sistema se resolvería como
x=Ainv*b
Otra solución sería utilizar la división matricial

Edwin Chávez Ramírez


X=A\b

A\b, produce un resultado aunque la matriz no sea cuadrada y aunque no


sea invertible.
Por ejemplo si el sistema esta sobredeterminado (más ecuaciones que
incógnitas) se calcula la solución que minimiza la norma 2 de Ax-b (solución
de mínimos cuadrados)
Ecuaciones lineales________________________________
Con matrices huecas
Ejemplo3: Consideremos una matriz tridiagonal de dimensión 32 con la
diagonal principal idénticamente igual a 4 y las diagonales superior e inferior
igual a 2, y estudiamos la variación en el número de operaciones a realizar
según tratemos la matriz como llena o dispersa. Al resolver el sistema “Ax=b”
, con b=d=[1:32]’;

Edwin Chávez Ramírez


%se define la diagonal inferior
diag=sparse(2:32,1:31,2*ones(1,31),32,32)
%se define la diagonal principal
a=sparse(1:32,1:32,4*ones(1:32));
%se construye la matriz tridiagonal dispersa
a=a+diag+diag’;
%se construye la matriz llena
b=full(a)
Ecuaciones lineales________________________________
%se define el segundo miembro
d=[1:32]’;

Autovalores y autovectores de una matriz.

>>eig(A) (vector columna)

Edwin Chávez Ramírez


>>[V,D]=eig(A)
Ecuaciones lineales________________________________
Ejercicio4.1
Se considera la matriz A. Calcular el determinante de la matriz A. Resolver el
sistema siendo b un vector columna igual a (1 2 3)
 6 18 2 
A=  
7  2  4 

Edwin Chávez Ramírez


 4 10  6 
 
Sustituir en la matriz A el elemento de la fila 1 columna 3 por –10 y hacer lo
mismo.
Ejercicio 4.2 Dada la matriz M, comprobar el teorema de Cayley-Hamilton:
Toda matriz es raíz de su polinomio característico
M= 1 1 2
 
1  2 0 
3 
 0 1 
Ecuaciones lineales________________________________
Ejercicio4.3
Se considera la matriz A. Calcular los autovectores y autovalores
A=
1 2 0 
 
2 5  1
Ejercicio4.1

Edwin Chávez Ramírez


4  1 
A=[6 18 2;7 –2 –4;4 10 –6];  10
d=det(A)
b=[1;2;3];
sol=A\b
A(1,3)=-10
d=det(A)
sol=A\b
A*sol-b
Ecuaciones lineales________________________________
Ejercicio 4.2
M=[1 1 –2; -1 –2 0; 3 0 1];
poly(M)
M^3+4*M+13*eye(3)

Ejercicio 4.3

Edwin Chávez Ramírez


A=[1 2 0; 2 5 -1;4 10 -1];
[V,D]=eig(A)
diag(D)

También podría gustarte