08.11.2014 Views

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo 6: Programación <strong>de</strong> MATLAB página 77<br />

Para <strong>de</strong>finir esta función, se <strong>de</strong>be elegir FILE/New/M-File en el menú <strong>de</strong> MATLAB. Si las<br />

cosas están "en or<strong>de</strong>n" se abrirá el Editor&Debugger<br />

para que se pueda editar ese fichero. Una vez abierto<br />

el Editor, se <strong>de</strong>ben teclear las 2 líneas siguientes:<br />

function y=prueba(x)<br />

y = 1./((x-.3).^2+.01)+1./...<br />

((x-.9).^2+.04)-6;<br />

salvándolo <strong>de</strong>spués con el nombre <strong>de</strong> prueba.m. La<br />

<strong>de</strong>finición <strong>de</strong> funciones se ha visto con <strong>de</strong>talle en el<br />

Apartado 6.3.2, a partir <strong>de</strong> la página 64. El fichero<br />

anterior ha <strong>de</strong>finido una nueva función que pue<strong>de</strong> ser<br />

utilizada como cualquier otra <strong>de</strong> las funciones <strong>de</strong><br />

MATLAB. Antes <strong>de</strong> seguir a<strong>de</strong>lante, conviene ver el<br />

aspecto que tiene esta función que se acaba <strong>de</strong> crear.<br />

Para dibujar la función prueba, tecléense los<br />

siguientes comandos:<br />

>> x=-1:0.1:2;<br />

>> plot(x,prueba(x))<br />

Figura 27. Función “prueba”.<br />

El resultado aparece en la Figura 27. Ya se está en condiciones <strong>de</strong> intentar hacer cálculos y<br />

pruebas con esta función.<br />

6.9.1. INTEGRACIÓN NUMÉRICA DE FUNCIONES<br />

Lo primero que se va a hacer es calcular la integral <strong>de</strong>finida <strong>de</strong> esta función entre dos valores <strong>de</strong> la<br />

abscisa x. En inglés, al cálculo numérico <strong>de</strong> integrales <strong>de</strong>finidas se le llama quadrature. Sabiendo<br />

eso, no resulta extraño el comando con el cual se calcula el área comprendida bajo la función entre<br />

los puntos 0 y 1 (obsérvese que la referencia <strong>de</strong> la función a integrar se pasa por medio <strong>de</strong>l operador<br />

@ precediendo al nombre <strong>de</strong> la función. También podría crearse una variable para ello):<br />

>> area = quad(@prueba, 0, 1)<br />

area =<br />

29.8583<br />

Si se teclea help quad se pue<strong>de</strong> obtener más <strong>de</strong> información sobre esta función, incluyendo el<br />

método utilizado (Simpson) y la forma <strong>de</strong> controlar el error <strong>de</strong> la integración.<br />

La función quadl() utiliza un método <strong>de</strong> or<strong>de</strong>n superior (Lobatto), mientras que la función<br />

dblquad() realiza integrales <strong>de</strong>finidas dobles. Ver el Help o los manuales online para más<br />

información.<br />

6.9.2. ECUACIONES NO LINEALES Y OPTIMIZACIÓN<br />

Después <strong>de</strong> todo, calcular integrales <strong>de</strong>finidas no es tan difícil. Más difícil es <strong>de</strong>s<strong>de</strong> luego calcular<br />

las raíces <strong>de</strong> ecuaciones no lineales, y el mínimo o los mínimos <strong>de</strong> una función. MATLAB dispone<br />

<strong>de</strong> las tres funciones siguientes:<br />

fzero<br />

fminbnd<br />

fminsearch<br />

optimset<br />

calcula un cero o una raíz <strong>de</strong> una función <strong>de</strong> una variable<br />

calcula el mínimo <strong>de</strong> una función <strong>de</strong> una variable<br />

calcula el mínimo <strong>de</strong> una función <strong>de</strong> varias variables<br />

permite establecer los parámetros <strong>de</strong>l proceso <strong>de</strong> cálculo<br />

Se empezará con el cálculo <strong>de</strong> raíces. Del gráfico <strong>de</strong> la función prueba entre -1 y 2 resulta<br />

evi<strong>de</strong>nte que dicha función tiene dos raíces en ese intervalo. La función fzero calcula una y se

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!