La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

MATLAB para Economistas

Presentaciones similares


Presentación del tema: "MATLAB para Economistas"— Transcripción de la presentación:

1 MATLAB para Economistas
José Luis Hueso Matemática Aplicada Universidad Politécnica de Valencia

2 Itinerario 1ª Etapa: Invertir en MATLAB 2ª Etapa: MATLAB funciona
3ª Etapa: MATLAB marca la diferencia

3 Contenido Mandatos básicos Variables Constantes Funciones Vectores
Gráficas Matrices Polinomios Ecuaciones diferenciales Ajuste mínimo cuadrático Splines La cesta de la compra Interés compuesto Venta a plazos Modelos económicos En esta primera Práctica, aprenderemos a utilizar las órdenes básicas de MATLAB para trabajar con escalares, vectores y matrices, evaluar funciones de una y dos variables y representarlas gráficamente. En prácticas posteriores usaremos habitualmente MATLAB para efectuar los cálculos y programar los algoritmos numéricos que son el objetivo central del libro. MATLAB (MATrix LABoratory) es un programa orientado al cálculo con matrices, al que se reducen muchos de los algoritmos que resuelven problemas de Matemática Aplicada e Ingeniería. MATLAB ofrece un entorno interactivo sencillo mediante una ventana en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados. Los gráficos se muestran en ventanas independientes. Cada ventana dispone de una barra de menús que controla su funcionalidad. Aprenderemos a asignar, borrar, guardar y recuperar variables, utilizar las funciones incorporadas y, más adelante, a definir funciones nuevas. MATLAB opera directamente con números complejos y con números reales como caso particular. Lo que distingue a MATLAB de otros sistemas de cálculo es su facilidad para trabajar con vectores y matrices. Las operaciones ordinarias, suma, producto, potencia, operan por defecto sobre matrices, sin más restricción que la compatibilidad de tamaños en cada caso. Entes matemáticos como los polinomios son tratados por MATLAB como vectores, gracias al hecho de que se suman y multiplican por escalares de la misma forma que éstos. La multiplicación y división entera de polinomios se efectúan mediante órdenes específicas, así como la evaluación o derivación de un polinomio. Una de las características más destacables de MATLAB es su capacidad gráfica. Explicaremos algunos comandos gráficos para representación de funciones de una o dos variables en distintos sistemas de coordenadas. MATLAB dispone de mandatos propios de un lenguaje de programación para efectuar bucles y bifurcaciones condicionales y puede ejecutar las órdenes contenidas en ficheros grabados en ASCII mediante un editor como el bloc de notas o el editor de ficheros de órdenes incorporado. Al escribir, por ejemplo, la suma de dos matrices como A+B obtenemos un código más claro y conciso que en otro lenguaje de programación, sin bucles innecesarios y de ejecución mucho más rápida .

4 Invertir en MATLAB Mandatos básicos Variables Vectores Gráficas
Matrices Funciones Polinomios La cesta de la compra El IPC Interés compuesto El IGBM Matriz de transición La Cuenta Naranja En esta primera Práctica, aprenderemos a utilizar las órdenes básicas de MATLAB para trabajar con escalares, vectores y matrices, evaluar funciones de una y dos variables y representarlas gráficamente. En prácticas posteriores usaremos habitualmente MATLAB para efectuar los cálculos y programar los algoritmos numéricos que son el objetivo central del libro. MATLAB (MATrix LABoratory) es un programa orientado al cálculo con matrices, al que se reducen muchos de los algoritmos que resuelven problemas de Matemática Aplicada e Ingeniería. MATLAB ofrece un entorno interactivo sencillo mediante una ventana en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados. Los gráficos se muestran en ventanas independientes. Cada ventana dispone de una barra de menús que controla su funcionalidad. Aprenderemos a asignar, borrar, guardar y recuperar variables, utilizar las funciones incorporadas y, más adelante, a definir funciones nuevas. MATLAB opera directamente con números complejos y con números reales como caso particular. Lo que distingue a MATLAB de otros sistemas de cálculo es su facilidad para trabajar con vectores y matrices. Las operaciones ordinarias, suma, producto, potencia, operan por defecto sobre matrices, sin más restricción que la compatibilidad de tamaños en cada caso. Entes matemáticos como los polinomios son tratados por MATLAB como vectores, gracias al hecho de que se suman y multiplican por escalares de la misma forma que éstos. La multiplicación y división entera de polinomios se efectúan mediante órdenes específicas, así como la evaluación o derivación de un polinomio. Una de las características más destacables de MATLAB es su capacidad gráfica. Explicaremos algunos comandos gráficos para representación de funciones de una o dos variables en distintos sistemas de coordenadas. MATLAB dispone de mandatos propios de un lenguaje de programación para efectuar bucles y bifurcaciones condicionales y puede ejecutar las órdenes contenidas en ficheros grabados en ASCII mediante un editor como el bloc de notas o el editor de ficheros de órdenes incorporado. Al escribir, por ejemplo, la suma de dos matrices como A+B obtenemos un código más claro y conciso que en otro lenguaje de programación, sin bucles innecesarios y de ejecución mucho más rápida .

5 Mandatos básicos help, help tema dir diary fichero Comentarios: %
Edición de líneas de comando Cortar y Pegar En adelante, destacaremos en negrita los nombres de variables y las fórmulas incluidas en el texto y en cursiva los términos o definiciones importantes. El texto en Courier contiene órdenes pueden introducirse en MATLAB tal y como aparecen o incorporarse a un fichero de órdenes. En Courier cursiva indicamos parámetros de algunas órdenes, que deben sustituirse por un dato apropiado en cada caso. Debes interpretar el inductor » como una invitación a escribir en MATLAB lo que aparece a continuación del mismo. Al abrir el programa, MATLAB sugiere comenzar con la demo o con órdenes de ayuda. Elige la demo si tienes tiempo. Help nos da una lista de temas sobre los que hay información de ayuda. Helpwin abre una ventana de ayuda que es útil para consultar información sobre órdenes de MATLAB sin interferir con la ventana principal. Help tema explica sucintamente el tema elegido. El mandato dir lista los ficheros del directorio actual. Prueba dir a: Uno de los mandatos más útiles de MATLAB es diary, que permite guardar en un fichero todo el texto que aparece en la ventana de comandos. Si tienes un diskette en la unidad a:, escribe diary a:practi01.txt y todo lo que salga en pantalla se grabará en un fichero practi01.txt justo cuando vuelvas a introducir el mandato diary. Para añadir más texto en una misma sesión al diario creado usa diary on al principio de lo que quieras grabar y diary off al final (en este momento se graba realmente). El mandato % convierte en comentario lo que escribas a continuación. % Esto es un comentario Con la tecla [] recuperas los mandatos antes escritos, evitando así tener que reescribir órdenes iguales o parecidas. También puedes 'copiar' con el ratón texto de cualquier sitio y 'pegar' en la (única) línea de mandatos activa, eligiendo estas opciones en el menú de edición. Vale usar [Ctrl]+C y [Ctrl]+V con el mismo fin.

6 Variables Asignar Listar Eliminar Guardar Recuperar a = 3, b = 4
ans who whos Eliminar clear b Guardar save fichero Recuperar load fichero En MATLAB las variables se asignan de modo natural. Basta escribir un nombre de variable, a continuación el signo = y luego el valor que toma esa variable. Para aceptar, como siempre, hay que pulsar [Intro]. Escribiendo sólo el nombre de una variable previamente asignada, MATLAB devuelve su valor. a = 3, b = 4, a Los signos +, -, *, / y ^ denotan las operaciones aritméticas de suma, resta, multiplicación, división y elevación a una potencia (de modo que resultan válidas para matrices, como veremos más adelante). Si el resultado de una operación no es asignado a ninguna variable, MATLAB lo asigna a la variable del sistema ans. a + b Para conservar este resultado haces c = ans; Al poner 'punto y coma', no se muestra el resultado por pantalla. Naturalmente, la asignación de la variable c no resulta afectada. La orden who lista las variables definidas y con la orden whos obtenemos además el tipo de variable y su tamaño. whos Clear sin argumentos elimina todas las variables. Clear c elimina la variable c. clear c, who Las variables de una sesión se pueden grabar en un fichero en disco. La orden save a:practi01 guarda los nombres y los valores de las variables actualmente definidas en un fichero en a: llamado practi01.mat. MATLAB añade automáticamente la extensión mat y así identifica el formato de estos ficheros. Si borras las variables, clear, who puedes recuperarlas ahora o en otra sesión con la orden load a:practi01

7 Constantes y cadenas Formatos numéricos format long format short
Número p: pi Unidad imaginaria: i,j Precisión: eps Infinito: Inf Indeterminación: NaN Cadenas de caracteres 'Esto es una cadena' Esto no Formatos numéricos format long format short format rat format bank MATLAB utiliza ciertos nombres de variable para fines especiales, como i o j, que designan ambas a la unidad imaginaria ( i2 = j2 = –1) o pi, para el número p. El número e, base de los logaritmos neperianos, no está preasignado, pero se obtiene fácilmente como exp(1). La precisión relativa en operaciones de coma flotante se llama eps. El resultado de 1/0 en MATLAB es Inf y el de 0/0, NaN. 1/0 % Infinito 0/0 % Indeterminado Podemos utilizar estos nombres de variable para almacenar otros valores, prevaleciendo nuestra asignación sobre el valor por defecto de MATLAB. Por ejemplo, si no utilizamos números complejos, no hay inconveniente en representar por i y j los índices de fila y columna de una matriz. Igualmente podríamos llamar eps a una cantidad a utilizar como criterio de convergencia, pero en general conviene evitar equívocos empleando otros nombres de variable. Internamente MATLAB trabaja con mucha precisión, aunque por defecto muestra los resultados con cuatro decimales. La apariencia de los resultados se modifica por menú o con la orden format. Format long aumenta el número de decimales visibles. format long, pi Format short vuelve al estado inicial. Format rat aproxima el resultado por un cociente de enteros pequeños. Explora otras opciones con help format. format rat, pi Podemos usar también cadenas de caracteres para manejar texto en funciones de MATLAB. Para introducir una cadena, basta escribir el texto entre comillas. 'Esto es una cadena' Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o función. Esto no ??? Undefined function or variable 'Esto'.

8 Vectores Edición Componentes V. Progresivos Norma u = [11 9 2001]
w = [1;2;3] w = [1 2 3] Componentes u(1), u(2), u(3) V. Progresivos 1:7:31 linspace(1,29,5) Norma norm(v) Los vectores se utilizan, entre otras cosas, para representar: Puntos del plano y del espacio. Puntos de un espacio n-dimensional. Magnitudes físicas. Filas o columnas de una matriz (recuerda la discusión de sistemas de ecuaciones lineales). Para introducir un vector en MATLAB, escribimos sus componentes entre corchetes. Separando las componentes con comas o espacios obtenemos un vector fila. Separándolas por punto y coma o por [Intro], obtenemos un vector columna. Prueba u = [1 2 3], v = [1,2,3] % Vectores fila w = [1;2;3] % Vectores columna z = [1 2 3] Es muy frecuente tener que editar vectores con componentes equiespaciadas, por ejemplo, para crear una tabla de valores de una función. Con a:h:b creamos un vector de componentes que van de a a b y distan h cada una de la siguiente. La orden linspace(a,b,n) crea n términos en progresión aritmética, desde a hasta b. 0:0.1:1 linspace(0,1,11) La norma de un vector v proporciona información de gran importancia en el estudio de la convergencia. Además de la norma euclídea, norm(v), MATLAB conoce otras normas, como la norma 1, también llamada del taxi, norm(v,1), o la norma infinito o supremo, norm(v,inf). El gráfico muestra vectores aleatorios, unitarios para la norma del taxi en R2. La función length devuelve el número de componentes de un vector.

9 Operaciones con vectores
Suma de vectores: u+v Producto por escalar: 2*u Producto escalar: dot(u,v) Producto matricial: u*w Producto elemental: u.*v Potencia elemental: u^2, u.^v La suma de dos vectores del mismo tamaño se efectúa componente a componente y se obtiene con MATLAB escribiendo directamente u + v La orden sum(u) proporciona la suma de todas las componentes del vector u. Para multiplicar un vector u por un escalar a, basta escribir a*u. El producto escalar de dos vectores se efectúa con dot(u,v) % Producto escalar (da un número) En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la versión 'punto' del producto. u.*v % Producto elemento a elemento Si intentamos multiplicar por las buenas dos vectores del mismo tamaño, nos da un error, pues MATLAB aplica el producto matricial y los tamaños no son coherentes. El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el segundo. Por ejemplo, podemos multiplicar una fila por una columna del mismo número de elementos o viceversa. u*w % Fila × Columna = Escalar w*u % Columna × Fila = Matriz de rango 1 Finalmente, el producto de todas las componentes de un vector se obtiene con la función prod. La transpuesta (conjugada) de un vector (complejo) v es v'. Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo un vector columna. Una característica destacable de MATLAB es que evalúa una función sobre todas las componentes de un vector simultáneamente, lo cual es muy práctico, por ejemplo, para representarla gráficamente. x = -1:0.01:1 % Crea un vector de abscisas x y = tanh(x) % Evalúa la función en todo x plot(x,y) % La representa gráficamente

10 Cesta de la compra Productos Precio unitario Cantidad Importe
Pan, Leche, Carne, Pescado Precio unitario p = [80, 100, 2000, 1000] Cantidad c = [5, 12, 0.750, 2.5] Importe dot(p,c)

11 Más operaciones con vectores
Suma de componentes sum([ ]) Suma acumulada cumsum ([ ]) Producto de componentes prod([ ]) Producto acumulado cumprod() La suma de dos vectores del mismo tamaño se efectúa componente a componente y se obtiene con MATLAB escribiendo directamente u + v La orden sum(u) proporciona la suma de todas las componentes del vector u. Para multiplicar un vector u por un escalar a, basta escribir a*u. El producto escalar de dos vectores se efectúa con dot(u,v) % Producto escalar (da un número) En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la versión 'punto' del producto. u.*v % Producto elemento a elemento Si intentamos multiplicar por las buenas dos vectores del mismo tamaño, nos da un error, pues MATLAB aplica el producto matricial y los tamaños no son coherentes. El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el segundo. Por ejemplo, podemos multiplicar una fila por una columna del mismo número de elementos o viceversa. u*w % Fila × Columna = Escalar w*u % Columna × Fila = Matriz de rango 1 Finalmente, el producto de todas las componentes de un vector se obtiene con la función prod. La transpuesta (conjugada) de un vector (complejo) v es v'. Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo un vector columna. Una característica destacable de MATLAB es que evalúa una función sobre todas las componentes de un vector simultáneamente, lo cual es muy práctico, por ejemplo, para representarla gráficamente. x = -1:0.01:1 % Crea un vector de abscisas x y = tanh(x) % Evalúa la función en todo x plot(x,y) % La representa gráficamente

12 IPC Septiembre 2001 Intermensual Incremento desde principio de año
Im = [ ] Incremento desde principio de año Imn = *Im Ima = cumprod(Imn) Índice mes a mes (inicio de año: 133.4) Imm = 133.4*Ima

13 Interés compuesto Tipo de interés anual (1998-2001) Tipo acumulado
ic = cumprod(i) Valor de la inversión C = Co*ic

14 Gráficas Gráfico de barras Títulos any = 1998:2001 bar(any,i)
title('Tipo de interés anual') xlabel('Año') ylabel('Tipo')

15 Matrices Edición Elemento: A(2,1) Fila: A(2,:) Columna: A(:,1) Bloques
M = [A,B;B,A] Submatrices M41 = M(1:3,2:4) fil = [1,2,4] col = [1,3,4] M32 = M(fil,col) Por defecto, MATLAB trabaja con matrices. Esto supone la ventaja substancial de no tener que declarar tipos de variable ni tamaños de fila o columnas para trabajar tanto con matrices de números reales o complejos como con vectores o escalares, que se consideran casos particulares de matrices. Las matrices se escriben por filas. Los elementos de una fila se separan por 'comas' y las distintas filas por 'puntos y comas'. A = [1,2;3,4] Lo mismo que con vectores, podemos también separar los elementos de una fila con espacios y las filas pulsando la tecla [Intro]. B = [ ] El elemento en la fila i y la columna j de la matriz A se denota por A(i,j). Modifica, por ejemplo, el elemento 2,1 de A: A(2,1) = 0 A(i,:) denota la fila i de la matriz A. Análogamente, A(:,j) es la columna j de A. A(2,:), A(:,1) En ocasiones resulta cómodo construir una matriz a base de bloques. Con tal de que sus tamaños sean coherentes, basta escribir los bloques por filas, como si se tratase de elementos individuales. M = [A,B;B,A] Para extraer una submatriz, indicaremos las filas y columnas de que se compone. M41 = M(1:3,2:4) Las filas o columnas no tienen por que ser consecutivas fil = [1,2,4], col = [1,3,4] M32 = M(fil,col) La función size devuelve un vector de dos componentes que son el número de filas y el número de columnas de la matriz. Observa cómo se usa: [f,c] = size(M)

16 Operaciones con matrices
Suma y resta: Producto: * .* Potencia: ^ .^ Cociente izq.: / ./ Cociente der.: \ .\ Transpuesta: ' .' Determinante det(A) Inversa inv(A) Rango rank(A) Para sumar dos matrices del mismo tamaño, se suma cada elemento de una con el elemento correspondiente de la otra. A + B El producto de matrices se hace multiplicando fila por columna y sumando los resultados. Comprueba que el elemento (1,1) de la matriz producto A*B es A(1,1)*B(1,1)+A(1,2)*B(2,1) Observa que el producto de matrices NO es conmutativo A*B - B*A MATLAB interpreta A/B como el producto de A por la inversa de B. Prueba: A/B, A*inv(B), A*inv(A) La no conmutatividad del producto justifica que inv(A)*B se abrevie a A\B. Asimismo, la solución del sistema Ax=b, que formalmente es x=A–1b, se obtiene en MATLAB con A\b. Bien entendido que la solución no se obtiene calculando la inversa de A, sino aplicando métodos numéricamente más eficientes (ver help slash). Para multiplicar dos matrices elemento a elemento, en lugar de filas por columnas, usamos las variantes 'punto' de las operaciones correspondientes. Comprueba la diferencia entre A*B, A.*B, A^-1, A.^-1 Si A es una matriz real, A' es la transpuesta de A. En el caso complejo, A' es la transpuesta conjugada. La transpuesta sin conjugar se obtiene con A.' Det(A) proporciona el determinante. Esta función no debe usarse en las aplicaciones, pues es inestable numéricamente. En lugar de la regla de Cramer, hay que utilizar eliminación de Gauss para resolver sistemas o calcular inversas. La determinación del rango mediante menores es numéricamente inestable. Inv(A) calcula la matriz inversa de A. Los algebristas numéricos recomiendan el uso responsable de esta función, sólo en caso de necesidad. Rank(A) estima el rango de A mediante un algoritmo numéricamente estable.

17 Matrices usuales Identidad de orden n: eye(n)
Nula de tamaño m×n: zeros(m,n) Matriz de m×n unos: ones(m,n) Matriz m×n aleatoria: rand(m,n) Cuadrado mágico: magic(n) Ya hemos visto cómo se escriben las matrices. MATLAB tiene varias funciones que facilitan la edición de matrices de uso frecuente. Eye(n) proporciona la matriz identidad de orden n. Zeros(n,m) inicializa una matriz m por n con todos los elementos nulos. Ones hace lo mismo con elementos de valor 1. Rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [0,1]. Magic genera cuadrados mágicos, lo que si no es muy útil, al menos es entretenido. Las filas, columnas y diagonales de un cuadrado mágico suman lo mismo. Prueba: M=magic(3) sum(M) sum(M') d=diag(M) sum(d) N=fliplr(M) sum(diag(N))

18 Matriz de transición Tres plataformas de TV compiten en el mercado: C, con el 60%; Q, con el 20% y D, con el resto. De una temporada a otra, C pierde el 10% de sus clientes a favor de Q y el 35% a favor de D. Al mismo tiempo, el 5% de los clientes de Q pasan a C y el 10% a D. El 10% de los clientes de D pasan a Q y el 5% a C. ¿Cómo se distribuye el mercado la temporada siguiente?

19 Matriz de transición

20 Matriz de transición

21 Funciones help elfun sin sqrt cos exp tan log log10 ezplot (x3+1)/x -2
2 -6 -4 4 6 8 x (x3+1)/x sin cos tan help elfun sqrt exp log log10 ezplot (x3+1)/x MATLAB conoce las funciones matemáticas elementales: Trigonométricas: seno, coseno, tangente, cosecante, secante y cotangente. Trigonométricas inversas: arco seno, arco coseno, arco tangente, ... Exponencial y logaritmos neperiano, decimal y en base 2. Hiperbólicas: seno hiperbólico, coseno hiperbólico, tangente hiperbólica, ... Hiperbólicas inversas: argumento seno hiperbólico, coseno, tangente, ... Raíz cuadrada, parte entera, valor absoluto, ... Consulta su sintaxis con help elfun. Aparte de estar el nombre en inglés (por ejemplo, el seno es 'sin'), hay que tener en cuenta unos pequeños detalles para evitar errores al usar funciones. Las funciones trigonométricas tienen el argumento en radianes Prueba sin(pi/2) frente a sin(90) MATLAB reserva log para el logaritmo neperiano, coherentemente con el uso habitual en matemática superior, pero en contraste con la práctica en ingeniería. El logaritmo decimal se obtiene con log10. Prueba exp(1) y luego log(ans) Puedes ver otras funciones disponibles con help specfun. MATLAB dispone de una orden para dibujar fácilmente funciones. Escribe ezplot y a continuación la expresión algebraica de la función a dibujar. ezplot('(x^3+1)/x') Para especificar el intervalo de representación, escribe: ezplot('(x^3+1)/x',[-2,2]) La orden fplot proporciona más opciones para controlar el aspecto de la gráfica obtenida. Por ejemplo, permite representar varias funciones a la vez. fplot('[sinh(x),cosh(x),tanh(x)]',[-2,2]) grid, axis equal

22 Funciones estadísticas
Densidad y distribución normpdf normcdf logncdf Funciones inversas norminv Estadística descriptiva mean std median var

23 Funciones de fecha Texto Vector Conversiones Valor numérico Más
d = date Vector c = clock Conversiones datestr(t) datestr(t,8) fix(datevec(t)) datenum('1-jan-0000') Valor numérico t = now f = floor(t) h = rem(t,1) Más help timefun

24 Importar datos de una Hoja de Cálculo
Nombrar el rango a importar: datos Posición inicial del rango: fila, columna Guardar el fichero como .wk1: mihoja Leer los datos desde MATLAB f=fila-1; c=columna-1; A=wk1read('mihoja',f,c,'datos')

25 Exportar una matriz a una Hoja de Cálculo
A=magic(5) wk1write('Cuadradomagico',A,4,2) Nombre de fichero (.wk1) Matriz a exportar Filas y columnas de margen

26 Importar de un fichero ASCII
load fichero.txt Lee filas de datos numéricos separados por espacios. Admite comentarios precedidos por %. Genera una variable llamada "fichero".

27 Gráfico de líneas Títulos load igbm.txt –ascii plot(igbm(:,2)),hold
plot(igbm(:,2),'ro') Títulos title('IGBM del 3/9 al 26/10') xlabel('Sesión') ylabel('Índice') gtext('11 de Septiembre')

28 Polinomios: Cuenta Naranja
Interés nominal anual r = Interés mensual rm = i/12 i = (1+rm) T.A.E tae = i^12-1 MATLAB se vale de vectores para manejar los polinomios. Para ello considera las componentes de un vector como coeficientes de un polinomio, ordenados de mayor a menor grado. Así, por ejemplo, el vector p = [ 2/ /3 -7 ], representa al polinomio p(x) = 2/3x3 - 5x2 + 34/3x - 7 que es la solución del problema antes planteado. El valor del polinomio p en un punto se halla con polyval. polyval(p,3) Esta función, como muchas de MATLAB, puede evaluarse sobre un vector. Comprueba que el polinomio pasa por los puntos dados: polyval(p,x) % debe dar 0, 1, 0, 1. Obtén la gráfica de p(x) con xp = 0:.1:5; yp = polyval(p,xp); plot(xp,yp) Las raíces de un polinomio se obtienen inmediatamente con roots. r = roots(p) Recíprocamente, dado un vector r, poly(r) es un polinomio con coeficiente director unidad cuyas raíces son las componentes del vector. poly(r) Las operaciones de suma, resta y producto por un escalar de polinomios corresponden exactamente con las mismas operaciones de vectores. El producto de polinomios se hace con la orden conv y la división con resto se hace con [cociente, resto] = deconv(dividendo, divisor). Divide p(x) por x – 5. d = [1 -5], [q,r] = deconv(p,d) Haz la prueba de la división. p - conv(d,q) - r % debe dar 0 Comprueba que r = p(5), según afirma el Teorema del Resto.

29 Polinomios: Cuenta Naranja
Movimientos p = [1 3 –2 4 – –3 –5 -7] Saldo final polyval(p,i) MATLAB se vale de vectores para manejar los polinomios. Para ello considera las componentes de un vector como coeficientes de un polinomio, ordenados de mayor a menor grado. Así, por ejemplo, el vector p = [ 2/ /3 -7 ], representa al polinomio p(x) = 2/3x3 - 5x2 + 34/3x - 7 que es la solución del problema antes planteado. El valor del polinomio p en un punto se halla con polyval. polyval(p,3) Esta función, como muchas de MATLAB, puede evaluarse sobre un vector. Comprueba que el polinomio pasa por los puntos dados: polyval(p,x) % debe dar 0, 1, 0, 1. Obtén la gráfica de p(x) con xp = 0:.1:5; yp = polyval(p,xp); plot(xp,yp) Las raíces de un polinomio se obtienen inmediatamente con roots. r = roots(p) Recíprocamente, dado un vector r, poly(r) es un polinomio con coeficiente director unidad cuyas raíces son las componentes del vector. poly(r) Las operaciones de suma, resta y producto por un escalar de polinomios corresponden exactamente con las mismas operaciones de vectores. El producto de polinomios se hace con la orden conv y la división con resto se hace con [cociente, resto] = deconv(dividendo, divisor). Divide p(x) por x – 5. d = [1 -5], [q,r] = deconv(p,d) Haz la prueba de la división. p - conv(d,q) - r % debe dar 0 Comprueba que r = p(5), según afirma el Teorema del Resto.

30 F I N de la primera parte


Descargar ppt "MATLAB para Economistas"

Presentaciones similares


Anuncios Google