Download - Matlab basico
![Page 1: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/1.jpg)
Curso de Matlab. Nivel Básico
Guillem Borrell i Nogueras
12 de octubre de 2013
![Page 2: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/2.jpg)
Antes de empezar
• Guillem Borrell i Nogueras.• http://iimyo.forja.rediris.es/
• Introducción Informal a Matlab y Octave• Matemáticas en Ingeniería con Matlab y Octave• Transparencias y ejercicios de este curso• Material de otros cursos
![Page 3: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/3.jpg)
Funcionamiento
• Visitar la página del curso• Descargarse la hoja de ejercicios• Parar el vídeo para intentar el ejercicio antes
que se de la solución.
![Page 4: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/4.jpg)
Recordad...
Ningún lenguaje se aprende por osmosis
![Page 5: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/5.jpg)
¿Qué es Matlab?
• Un lenguaje de programación• Un lenguaje de programación interpretado• Un lenguaje de programación interactivo
Usar Matlab == Programar en Matlab
![Page 6: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/6.jpg)
¿Qué no es Matlab
• Una hoja de cálculo• Un programa de cálculo simbólico. Matlab
puede hacer∫ 1
0 erf (x) dx = 0.486 pero no∫erf (x) dx = x erf (x) + e−x2
√π
• La solución a todos nuestros problemas.
![Page 7: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/7.jpg)
¿Qué significa interpretado?
• Un intérprete es un programa.• Es como un actor que hace todo lo que le
dice un guión• Muy parecido a la una calculadora.• Es interactivo.
1 >>
Os presento a la consola de Matlab
![Page 8: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/8.jpg)
Algunas mentiras
• Para ser ingeniero aeronáutico no esnecesario saber programar.
• Programar es difícil.• Programar bien es fácil.• Los ingenieros programan bien• En la vida basta un lenguaje de
programación mientras se domine.
![Page 9: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/9.jpg)
Un autoengaño
Si en la escuela sólo me dan seiscréditos de informática es porque
no es importante.
![Page 10: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/10.jpg)
En Arquitectura nadie enseñaAutocad.
![Page 11: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/11.jpg)
Problema:
Representar I(y), la integral de la función deBessel
I(y) =∫ y
0J2.5(x) dx
con y ∈ [1,5]
• ¿Cómo se haría en Fortran?• ¿Cómo se haría en Excel?
![Page 12: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/12.jpg)
En Matlab son 6 líneas
1 x=linspace(1,5,100);2 intbessel=@(y) quad(@(x) besselj(2.5,x),0,y);3 for i=1:1004 z(i)=intbessel(x(i));5 end6 plot(x,z);
No os preocupéis si no entendéis nada. Esto esMatlab avanzado.
![Page 13: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/13.jpg)
El resultado
0
0.2
0.4
0.6
0.8
1
1.2
1 1.5 2 2.5 3 3.5 4 4.5 5
![Page 14: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/14.jpg)
¿Una calculadora programable?
1 >> 2+22 ans = 43 >> mean([1,2,3,4,5,6,7,8,9])4 ans = 55 >> abs(3+4i)6 ans = 5
![Page 15: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/15.jpg)
Todo esto es muy bonito pero...
• ¿Es una herramienta realmente útil?• ¿Se usa masivamente en la industria?• ¿Por qué?• ¿Cuánto cuesta Matlab?• ¿Es la única solución?
![Page 16: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/16.jpg)
Octave
• Implementación libre y gratuita del lenguajeMatlab
• http://www.octave.org
• Programa muy utilizado en GNU/Linux• Versiones para Windows y Mac• QtOctave• Libre y gratuito
![Page 17: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/17.jpg)
El lenguaje Matlab
• Caracteres especiales• Funciones y scripts• Tipos• Variables• Operadores• Sentencias• Contenendores
• Function handles
![Page 18: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/18.jpg)
Caracteres especiales
1 >> % Este comando sera ignorado2 >> ’hola’ % ’Hola,Matlab!’3 ans = hola45 >> ’hola’;6 >> ’hola’, ’que tal’7 ans = hola8 ans = que tal9
10 >> ’hola’, ...11 ’que tal’12 ans = hola13 ans = que tal
![Page 19: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/19.jpg)
El directorio de trabajo
• Matlab puede ejecutar archivos con código• Matlab puede cargar archivos de datos• La biblioteca de funciones está formada por
archivos con código.• Matlab busca en sus directorios de sistema
más el directorio de trabajo• Variable path
![Page 20: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/20.jpg)
Funciones. Sintaxis
1 function [sal1,sal2,...] = nombre(ent1,ent2,...)2 sentencias ejecutables3 sal1 = ...4 sal2 = ...
Lo guardaremos todo en el directorio de trabajoen un archivo llamado nombre.m
![Page 21: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/21.jpg)
Scripts
• Un script es un programa• Un programa es una secuencia de
instrucciones ejecutables• Un programa no depende de variables
externas• También se guarda en un archivo .m en el
directorio de trabajo• Se ejecuta escribiendo el nombre del
archivo en la consola o pulsando F5 en eleditor.
![Page 22: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/22.jpg)
Nuestra primera función
Abrimos un archivo nuevo en el editor1 function y = aprsin(x)2 y=x-(x.^3)/6
Y lo guardamos en el directorio de trabajo comoaprsin.m.
![Page 23: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/23.jpg)
Nuestro primer script
En un archivo nuevo del editor1 x=linspace(-pi,pi,100);2 for i = 1:1003 y(i)=aprsin(x(i));4 end5 plot(x,[y;sin(x)])
Lo guardamos con el nombre comparar.m enel directorio de trabajo. Luego pulsamos F5
![Page 24: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/24.jpg)
El resultado
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
-3 -2 -1 0 1 2 3
![Page 25: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/25.jpg)
Ayuda. Función help
• En Matlab todo es una función• Cada función contiene una pequeña ayuda• Para consultar la ayuda existe la funciónhelp
1 help eig
![Page 26: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/26.jpg)
Tipos
Es importante diferenciar los conceptos deTipo Cualquier elemento de un código
tiene un tipo: caracteres, números,matrices...
Variable Identificador asignado a un tipo o a uncontenedor
Argumento Variable de entrada o salida de unaunidad de programa
![Page 27: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/27.jpg)
Tipos numéricos
• Tipo por defecto: arrays n-dimensionales dedoble precisión
• Simple precisión• Enteros de varios bits
![Page 28: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/28.jpg)
Mira qué curioso
1 >> a = pi2 a = 3.14163 >> a(1)4 ans = 3.14165 >> a(1,1)6 ans = 3.14167 >> a(1,1,1)8 ans = 3.1416
![Page 29: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/29.jpg)
Escribir matrices
• El espacio o la coma separan elementos dela misma fila
• El retorno de carro o el punto y coma separafilas 1 2 3
4 5 67 8 9
![Page 30: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/30.jpg)
Ejercicio 1
1 M=[1,2,3;4,5,6;7,8,9];
Escribir 1 2 34 5 67 8 9
de otros 3 modos posibles.
![Page 31: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/31.jpg)
Subíndices
• En Matlab el primer índice cuentaelementos en la columna
• El segundo índice cuenta elementos en lafila
• Pero un vector es siempre fila a no ser quese diga lo contrario.
• El truco es que no nos preocupen las filas ylas columnas, sólo los índices
Mij = M(i , j)
![Page 32: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/32.jpg)
No hay quien te entienda
1 >> v(4)=22 v =34 0 0 0 256 >> w(4,1)=27 w =89 0
10 011 012 2
![Page 33: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/33.jpg)
Un vector...
v = (1,2,3,4,5)
1 >> v=[1,2,3,4,5];2 >> v(4)3 ans = 4
![Page 34: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/34.jpg)
Una matriz...
1 2 34 5 67 8 9
1 >> M=[1,2,3;4,5,6;7,8,9];2 >> M(2,3)3 ans = 6
![Page 35: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/35.jpg)
Podemos indexar con vectores
1 2 34 5 67 8 9
1 >> M([1,2],[2,3])2 ans =34 2 35 5 6
![Page 36: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/36.jpg)
O con índices mudos
1 2 34 5 67 8 9
1 >> M(2,:)2 ans =34 4 5 6
![Page 37: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/37.jpg)
Secuencias
• Es una abreviatura común para escribir unvector fila
• La sintaxis esinicio:incremento:final
1 >> 0:2:102 ans =3 0 2 4 6 8 1045 >> 0:56 ans =7 0 1 2 3 4 5
![Page 38: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/38.jpg)
Ejercicio 2
Crear la matriz siguiente y extraer de ella lasubmatriz marcada en rojo.
11 12 13 14 1521 22 23 24 2531 32 33 34 3541 42 43 44 4551 52 53 54 55
![Page 39: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/39.jpg)
Otros tipos
• La unidad imaginaria es i, j, I o J• Las cadenas de texto se introducen entre
comillas simples• Los tipos lógicos son true y false. true es6≡ 0 y false es ≡ 0
![Page 40: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/40.jpg)
Operadores
• Operadores matriciales +, -, *, /, ˆ• Operadores escalares .*, ./, .ˆ• Operadores lógios matriciales &, |, !• Relaciones de comparación <, >, ==, <=,>=, !=
• Relaciones lógicas &&, ||
![Page 41: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/41.jpg)
El error más común de Matlab
1 >> a=rand(3,3);2 >> a=rand(3,3);b=rand(3,3);3 >> a*b4 ans =5 1.0297 0.9105 0.32936 0.9663 0.8267 0.42117 0.5355 0.4318 0.32798 >> a.*b9 ans =
10 0.1824 0.3253 0.056311 0.5500 0.6003 0.189712 0.0458 0.0017 0.1822
![Page 42: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/42.jpg)
El error más común de Matlab
1 >> a=[1,2,3;4,5,6;7,8,9];2 >> a.^pi3 ans =4 1.0000 8.8250 31.54435 77.8802 156.9925 278.37766 451.8079 687.2913 995.04167 >> a^pi8 ans =9 1.0e+03 *
10 0.69 - 0.0004i 0.85 - 0.0001i 1.01 + 0.0002i11 1.57 - 0.0000i 1.93 - 0.0000i 2.29 + 0.0000i12 2.45 + 0.0003i 3.01 + 0.0001i 3.57 - 0.0002i
![Page 43: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/43.jpg)
Ejercicio 3
![Page 44: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/44.jpg)
Control de flujo
• Las sentencias son palabras clavenecesarias para programar
• Son comunes a la mayoría de lenguajes deprogramación
• Control de flujo es el uso de bucles,condicionales, casos...
• El control de flujo implica elencapsulamiento de una tarea.
![Page 45: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/45.jpg)
Condicionales o if
1 if cond2 sentencias3 elseif cond4 sentencias5 else6 sentencias7 end
![Page 46: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/46.jpg)
Bucles o for
1 for var=contador2 sentencias3 end
• contador puede ser un vector o unasecuencia
• Para cada paso i avanza de valor encontador
• Las sentencias pueden depender o no de i
![Page 47: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/47.jpg)
Más control de flujo
case Control de casos finitoswhile Bucle controlado por condición lógica
try Control de excepcionesbreak Salida de bloques
continue Idemreturn vuelta al programa principal
![Page 48: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/48.jpg)
Ejercicio 4
![Page 49: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/49.jpg)
Contenedores
• Estructuras de datos. Forma de árbol• Cell arrays. Forma de matriz• Function handles. Contenedor para una
función.• Funciones anónimas
![Page 50: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/50.jpg)
Estructuras de datos
1 >> ed.num=1.234;2 >> ed.str=’hola’;3 >> ed.logic.true=1;4 >> ed.logic.false=0;5 >> ed67 ed =89 str: ’hola’
10 num: 1.234011 logic: [1x1 struct]
![Page 51: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/51.jpg)
Cell arrays
1 >> celda={1.234,’hola’;true,false}2 celda =3 [1.2340] ’hola’4 [ 1] [ 0]56 >> celda{1,1}7 ans = 1.2340
![Page 52: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/52.jpg)
Function Handles
Es capaz de contener una función.1 >> fhsin = @sin2 fhsin =34 @sin56 >> fhsin(pi/2)7 ans = 1
![Page 53: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/53.jpg)
Ejercicio 5
![Page 54: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/54.jpg)
Funciones anónimas
Permiten crear un function handle definiendo lafunción directamente.
1 >> test1 = @(x) x.*sin(x)2 test1 =3 @(x) x .* sin (x)4 >> test1(1)5 ans = 0.8414767 >> test2 = @(x,y) exp(-(x.^2+y.^2))8 test2 =9 @(x, y) exp (-(x .^ 2 + y .^ 2))
10 >> test2(1,i)11 ans = 1
![Page 55: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/55.jpg)
Conclusiones
• El lenguaje Matlab es muy limitado• Es sencilloy su sintaxis es clara• Sus estructuras son muy matemáticas• Está basdo en funcionesy no conocemos
ninguna• La biblioteca de funciones de Matlab es tan
grande como quieras pagarla.
![Page 56: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/56.jpg)
Creación de matrices
eye matriz de ceros con unos en ladiagonal
linspace Vector de elementos equiespaciadoslogspace Vector de elementos con el exponente
equiespaciadomeshgrid Matrices de elementos
equiespaciados en 2Dones Matriz de unoszeros Matriz de cerosrand Matriz de números aleatorios
![Page 57: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/57.jpg)
Manipulación de matrices
reshape Cambia la forma de la matrizconservando el número de elementos
transpose Traspuesta. Equivale a .’ctranspose Matriz conjugada. Equivale a ’
rot90 Gira la matriz 90 grados hacia laizquierda
![Page 58: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/58.jpg)
Ejercicio 6
![Page 59: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/59.jpg)
Resolución de SEL
Para resolver sistemas de ecuaciones linealescontamos con un operador universal
1 >> A=[1,0;2,1];y=[2;4];2 >> x=A\y3 x =45 26 0
![Page 60: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/60.jpg)
Cálculo Simbólico
• Podéis hacer operaciones simbólicas conMatlab
• Que pueda hacerse no significa que tengaque hacerse
• También podéis depilaros las cejas con unasierra mecánica
![Page 61: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/61.jpg)
Cálculo Simbólico
• Podéis hacer operaciones simbólicas conMatlab
• Que pueda hacerse no significa que tengaque hacerse
• También podéis depilaros las cejas con unasierra mecánica
![Page 62: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/62.jpg)
Cálculo Simbólico
• Podéis hacer operaciones simbólicas conMatlab
• Que pueda hacerse no significa que tengaque hacerse
• También podéis depilaros las cejas con unasierra mecánica
![Page 63: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/63.jpg)
Integración numérica
quad Integración numérica. 3 argumentosde entrada
quadl Algoritmo de integración mejoradodblquad Integración bidimensional de
funciones de dos variablestrapz Regla del trapecio
![Page 64: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/64.jpg)
Ejercicio 7
![Page 65: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/65.jpg)
Desarrollos en serie defunciones
• Los coeficientes de un desarrollo en serieson un vector
x2 + x es 1x2 + 1x + 0, es decir [1 1 0]1 >> p = [1 1 0];2 >> polyval(p,1)3 ans = 24 >> roots(p)5 ans =6 -17 0
![Page 66: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/66.jpg)
Polinomios
polyval Obtiene el valor en un puntoroots Obtiene las raíces del polinomio
polyder Deriva un polinomiopolyinteg Integra un polinomio
conv Multiplica dos polinomiosresidue Desarrollo en fracciones parciales.
![Page 67: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/67.jpg)
Funciones que devuelvenpolinomios
poly Obtiene el polinomio característico deuna matriz.
polyfit Modelo polinómico de una serie dedatos.
![Page 68: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/68.jpg)
Representación gráfica
• Representar datos es sencillo e intuitivo• No hay que emocionarse con la
representación gráfica• Sólo veremos curvas en el plano• ¿Necesitamos más?
![Page 69: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/69.jpg)
Plot
Representa curvas en el plano. e−x/100 sin xpara x ∈ [0,500]
1 >> x=linspace(0,500,100000);2 >> plot(x,exp(-x/100).*sin(x))
![Page 70: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/70.jpg)
El resultado
-1
-0.5
0
0.5
1
0 100 200 300 400 500
![Page 71: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/71.jpg)
Etiquetas
1 >> title(’Una funcion cualquiera’)2 >> xlabel(’Tiempo’)3 >> ylabel(’Amplitud’)
![Page 72: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/72.jpg)
El resultado
-1
-0.5
0
0.5
1
0 100 200 300 400 500
Am
plitu
d
Tiempo
Una funcion cualquiera
![Page 73: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/73.jpg)
Estilos
1 >> x=linspace(-pi,pi,100);2 >> plot(x,sin(x),’m:’,...3 x,cos(x),’k^’,x,tan(x),’bx’)4 >> axis([-pi,pi,-2,2])5 >> grid on6 >> legend(’linea de puntos magenta’,...7 ’triangulos negros’,...8 ’cruces azules’)
![Page 74: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/74.jpg)
El resultado
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
-3 -2 -1 0 1 2 3
linea de puntos magentatriangulos negros
cruces azules
![Page 75: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/75.jpg)
hold
• La ventana gráfica se borraautomáticamente cada vez que dibujamosalgo
• Para cambiar el comportamiento anterior seusa la función hold• hold on mantiene todo lo dibujado en la pantalla• hold off vuelve al comportamiento inicial
• Para borrar la ventana gráfica usamos clf
![Page 76: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/76.jpg)
figure
• Las ventanas gráficas se manipulan con lafunción figure
• Cada ventana gráfica tiene asociada unnúmero entero• figure se llama con un número que corresponde al
de la ventana• Si utilizamos un número que no corresponde a
ninguna ventana existente crearemos una nueva coneste número asociado
• Si utilizamos un número existente activaremos laventana correspondiente
![Page 77: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/77.jpg)
subplot
Es el comando que permite poner varios ejesen una misma figura
1 >> x= linspace(-pi,pi,100);2 >> subplot(2,2,1)3 >> plot(x,sin(x))
Primero de los cuatro sectores.
![Page 78: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/78.jpg)
El resultado
-1
-0.5
0
0.5
1
-4 -3 -2 -1 0 1 2 3 4
![Page 79: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/79.jpg)
subplot
Ahora completamos los cuatro cuadrantes.1 >> subplot(2,2,2)2 >> plot(x,cos(x))3 >> subplot(2,2,3)4 >> plot(x,sinh(x))5 >> subplot(2,2,4)6 >> plot(x,cosh(x))
![Page 80: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/80.jpg)
El resultado
0
2
4
6
8
10
12
-4 -3 -2 -1 0 1 2 3 4-15
-10
-5
0
5
10
15
-4 -3 -2 -1 0 1 2 3 4
-1
-0.5
0
0.5
1
-4 -3 -2 -1 0 1 2 3 4-1
-0.5
0
0.5
1
-4 -3 -2 -1 0 1 2 3 4
![Page 81: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/81.jpg)
Otros comandos
semilogx Dibuja una curva con el eje x enescala logarítmica
semilogy Dibuja una curva con el eje y enescala logarítmica
loglog Dibuja una curva en escalalogarítmica
![Page 82: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/82.jpg)
Ejercicio 8
Representar en una misma ventana y dosframes (uno superior y otro inferior) la función
√x sin(1/x) x ∈ [0.001,1]
en escala normal y en escala semilogarítmicaen el eje x.
![Page 83: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/83.jpg)
Comandos interesantes
get, set Cambia los atributos de un plothandle
text Pone texto en la figuracontour Isolíneas de una matriz de datos en
3Dgriddata Interpola para el contour
![Page 84: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/84.jpg)
Desarrollos de datos
interp1 Interpolación de una serie de puntosinterp2 Interpolación de una nube de puntospolyfit Coeficientes del polinomio de grado n
con mínimo error cuadráticofft Realiza la transformada de Fourier
![Page 85: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/85.jpg)
interp1
1 >> x=[1 2 3 4 5 6 7 8];2 >> y=[1 4 2 5 7 4 2 7];3 >> interp1(x,y,7.234,’spline’)4 ans = 2.34375 >> test=@(x,y,z) interp1(x,y,z,’spline’);6 >> test(x,y,7.234)7 ans = 2.3437
![Page 86: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/86.jpg)
polyfit
1 >> x=[1 2 3 4 5 6 7 8];2 >> y=[2 4 3 5 6 5 7 9];3 >> coeff=polyfit(x,y,3);4 >> plot(x,y,’k+’,1:0.1:8,...5 polyval(coeff,1:0.1:8),’b-’)
![Page 87: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/87.jpg)
El resultado
2
3
4
5
6
7
8
9
1 2 3 4 5 6 7 8
![Page 88: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/88.jpg)
Estadística descriptiva
mean Mediastd Desviación típica
median Medianasort Orena los elementos de menor a
mayorcenter Elimina la media de una muestra
![Page 89: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/89.jpg)
EDO
• Es una de las aplicaciones más importantesdel Cálculo Numérico
• Los problemas más comunes son losproblemas de Cauchy no lineales
• En ese caso la solución numérica esesencial
• Lo más importante es saber si nuestroproblema es stiff
![Page 90: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/90.jpg)
Stiff
• Un problema es stiff cuando el pasotemporal viene determinado por laestabilidad del esquema.
• Suelen relacionarse con problemas nolineales o condiciones de contorno muyexigentes
• Requieren esquemas de integracióntemporal implícitos
![Page 91: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/91.jpg)
Funciones
ode45 Runge-Kutta de paso variable orden4-5
ode113 Adams multipasoode23s Esquema implícito Rosenbrocklsode Octave
![Page 92: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/92.jpg)
Van der Pol
Un caso típico es la ecuación de Van der Pol
x ′′ + x + µ(x ′2 − 1)x = 0
Dependiendo del valor de µ el problema va aser stiff o no.
![Page 93: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/93.jpg)
Solución
1 >> [tout,xout]=ode45(@vdp1,[0 20],[2 0])2 >> plot(tout,xout(:,1))
![Page 94: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/94.jpg)
Solución
-3
-2
-1
0
1
2
3
0 5 10 15 20
![Page 95: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/95.jpg)
Solución
1 >> [tout,xout]=ode23s(@vdp1000,[0 20],[2 0])2 >> plot(tout,xout(:,1))
![Page 96: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/96.jpg)
Solución
-3
-2
-1
0
1
2
3
0 500 1000 1500 2000 2500 3000
![Page 97: Matlab basico](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55bdc535bb61eb5b4a8b45e1/html5/thumbnails/97.jpg)
Ejercicio 9