You are on page 1of 44

Grupo de Modelamiento de Sistemas Programa de Ingeniera Civil U de A

Matlab cuenta con algunas herramientas que permiten optimizar funciones.


Bsicamente, permite calcular el mnimo absoluto de funciones de una o varias variables en un intervalo y establecer parmetros de clculo para el proceso. Una funcin importante que ayuda a lo anterior es optimset.

optimset Esta herramienta crea una estructura de opciones, los cuales pueden usarse con entradas para las siguientes funciones: fminbnd, fminsearch, fzero, lsqnonneg. La sintaxis es: options = optimset('param1',value1,'param2',value2,...) Si el valor es carcter, va entre apstrofe

La siguiente tabla muestra las opciones que pueden ser modificadas para las funciones de optimizacin.

A continuacin se explicar cada una de las herramientas que permiten optimizar:


1.

fminbnd: Dada una funcin de una variable, y un intervalo, calcula el valor de la variable independiente tal minimiza la funcin (en caso de existir). La sintaxis es: x=fminbnd(nombrefuncin,a ,b): Regresa el valor de x que es un mnimo local de la funcin en el intervalo [a,b]

x=fminbnd(@nombrefuncin,a ,b): Forma anloga a la anterior.


z=fminbnd(@(x)f(x),a ,b): Se crea una funcin annima a partir de f(x). Se digita en el ( ). z=fminbnd(f,a ,b): Se llama la funcin f, ya creada como annima antes. [x,fval]=fminbnd(nombrefuncin,a ,b): Hace lo mismo que las dems, con la adicin de que regresa el valor de la funcin evaluada en el mnimo.

[x,fval,exitflag] = fminbnd(...): Devuelve lo mismo que antes, slo que indica ahora si la funcin tuvo xito o no. Si exitflag>0, indica que hall el resultado, si exitflag=0, indica que excedi la cantidad de bsquedas y si exitflag<0, indica que no hall nada. Para hallar un mximo basta con cambiar la funcin f(x) por f(x), y aplicar lo mismo que se vio antes.

2.

fminsearch: Dada una funcin de varias variables, y un intervalo, determina el valor mnimo de una funcin. La sintaxis es la misma de la anterior funcin, slo cambia el hecho de ingresar el intervalo entre corchetes.

Determinar los valores mximos y mnimos de las siguientes funciones en los intervalos indicados.
1) 2) 3) 4)

Matlab cuenta con una serie de funciones que permiten manipular polinomios, y resolver de forma rpida algunos problemas.
1.

roots: Como ya se vio, obtiene las races de un polinomio de grado n. poly: Si se aplica a una matriz cuadrada A, retorna el polinomio caracterstico de la matriz, cuyas races son los valores propios de A. Si por el contrario se aplica a un vector, retorna un polinomio cuyas races son el vector ingresado.

2.

La sintaxis que se maneja es: sea A una matriz cuadrada, y V un vector. D=poly(A): Devuelve el polinomio caracterstico P=poly(V): Entrega un P(x) cuyas races estn en V.
3.

polyval: Evala un polinomio en uno o varios valores de la variable independiente. La sintaxis usada es: A=polyval(p,[a,b,c,...,n]) la cual regresa un vector fila A con los valores de p evaluado en a, b, c,...,n o A=polyval(p,V) donde V es un vector fila

4.

polyfit: Halla los coeficientes de una curva polinmica que se ajuste a unos datos dados, escogiendo el grado. La sintaxis usada es: p=polyfit(x,y,n) donde x es el dominio, y el rango y n el grado. polyvalm: Evala un polinomio tomando como variable una matriz cuadrada. La sintaxis, dado un polinomio p y una matriz A, se tiene: B=polyvalm(p,A)

5.

6.

polyeig: Dadas n matrices cuadradas de orden m todas, retorna una matriz X de orden cuyas columnas son los vectores propios de cada matriz, y un vector columna e cuyos elementos son los valores propios de cada matriz. La sintaxis es [M,e]=polyeig(A0,A1,... ,An)

7.

polyder: Calcula la derivada simblica de un polinomio, o un producto o cociente de estos.

La sintaxis puede ser: k=polyder(p): Calcula la derivada de p;k=polyder(a,b) calcula la derivada del producto de los polinomios a y b; y [q,d]=polyder(b,a) calcula la derivada del cociente polinomial b/a, donde q es el numerador y d el denominador.
8.

polyint: Integra un polinomio en forma analtica, dando la integral indefinida del mismo, especificando la constante de integracin.

La sintaxis es: Dado un vector fila P que contenga los coeficientes de un polinomio, A=polyint(P,K) da un vector fila que contiene los coeficientes de la integral de este y el valor de la constante de integracin K, y A=polyint(P) hace lo mismo que la anterior, slo que toma K=0.
9.

conv y deconv: Si bien estos operadores vienen de la convolucin, si se trata de vectores los toma como coeficientes de polinomios y los multiplica o divide, respectivamente. La sintaxis es: Multiplicacin: r=conv(p,q)=conv(q,p) y Divisin: s=deconv(p,q)

10.

Suma y resta: Se siguen las mismas reglas que para operar matrices, es decir, que los vectores que representan los coeficientes de los polinomios tengan el mismo orden. As, es caso de faltar algn exponente se reemplaza con un cero. Fracciones parciales: Para la expansin de una funcin racional en fracciones parciales, es importante tener presente tres posibles casos:

11.

Races reales no repetidas Races complejas Races repetidas Para el trabajo con fracciones parciales, se emplea la funcin residue con la siguiente sintaxis: [c,r]=residue(b,a) donde b y a son los vectores filas que contiene los coeficientes de la funcin racional: b son del numerador y a del denominador. Las salidas, c y r contienen los coeficientes del numerador y los trminos independientes del denominador, siendo el primero el de la primera fraccin y el de menor grado.

Dados los polinomios p(x) y q(x), hallar lo siguiente:

1.

p + q , p-q, q-p
2. 3.

p*q

p/q, y q/p

4.

Los valores para p y q desde -2 hasta 2.


5.

La derivada de p, q, p*q, p/q y q/p.

6.

La integral de p, q y p*q, para valores de K desde -5 hasta 5.

Nota: Slo se presenta una parte de la solucin, ya que es bastante extensa. Para esto, se recomienda ejecutar el algoritmo en Matlab y verla completa.

Determine los polinomios cuyas races son las siguientes: -1,-5,-9 2. 1,2,3,4,5 3. i,-i,-0.5*i,+0,5*i,5 4. 2-3i, 2+3i
1.

Descomponer en fracciones parciales, las siguientes expresiones:

Los nmeros complejos, como es bien sabido, tiene una parte real y una imaginaria. Estos, se piensa a veces, no tienen aplicacin alguna. Sin embargo, esto no es cierto, ya que situaciones como resolver ciertos tipos de ecuaciones diferenciales implica cierto manejo de los mismos. En el campo de la Ingeniera Civil, ms especficamente en estudios dinmicos en estructuras y geotecnia pueden aparecer, por lo cual es importante conocer su manejo bsico

Matlab cuenta con algunas funciones que permiten trabajar con elementos de este conjunto numrico.
1.

Definicin: En matlab, la unidad imaginaria se representa por las letras i o j, por lo que se recomienda no emplearlos para otras situaciones distintas a sta. Ingreso: Es posible ingresarlos en tres formas distintas al programa:

2.

Forma 1: z=a+b*j=a+j*b Forma 2: z=a+bj (NO z=a+jb) Forma 3: z=complex(a,b) donde a es Re(z), y b es Im(z)

3.

Parte real-parte imaginaria: Dado un nmero complejo Z, es posible obtener su parte real y compleja, as: a=real(Z) y b=imag(Z), donde las variables a y b representan las partes real e imaginaria de Z

4.

Representacin polar: La forma polar de un complejo requiere conocer su magnitud y su argumento principal o ngulo formado con el eje real. Dado un complejo Z, definido en Matlab como tal, M=abs(Z) da su magnitud, y B=angle(Z) da su argumento principal en rad. El valor de B est entre - y +. Se recuerda que la forma polar es Z=R(cos*i+sen*j)

5.

Operaciones: Suma, resta y producto se hacen en Matlab con las operaciones ya conocidas. Basta con tener claro los conceptos respecto al lgebra de stos.
6.

Conjugado: La divisin entre complejos es necesario trabajarlos con la conjugada. En Matlab se emplea la funcin conj. Dado un complejo Z, Z=conj(Z) da su conjugado.

Cuando se estudie la generacin de grficos 2D, se ver cmo trabajar estos con nmeros complejos.

Para cada una de los siguientes pares ordenados (a,b), determine: Un complejo z=a+bi, y z* La magnitud y argumento de z y z* La parte real e imaginaria de z y z*
1.

2. 3.

(-1,-1), (-5,6), (5,0), (6,-2), (1,3) Exprese los resultados en una matriz.

You might also like