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
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