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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Aprenda</strong> <strong>Matlab</strong> <strong>6.1</strong> como si estuviera en Primero página 78<br />
conforma: ¿Cuál es la que calcula? Pues <strong>de</strong>pen<strong>de</strong> <strong>de</strong> un parámetro o argumento que indica un punto<br />
<strong>de</strong> partida para buscar la raíz. Véanse los siguientes comandos y resultados:<br />
>> fzero(@prueba, -.5)<br />
ans =<br />
-0.1316<br />
>> fzero(@prueba, 2)<br />
ans =<br />
1.2995<br />
En el primer caso se ha dicho al programa que empiece a buscar en el punto -0.5 y la solución<br />
encontrada ha sido -0.1316. En el segundo caso ha empezado a buscar en el punto <strong>de</strong> abscisa 2 y ha<br />
encontrado otra raíz en el punto 1.2995. Se ven claras las limitaciones <strong>de</strong> esta función.<br />
La función fzero() tiene también otras formas interesantes:<br />
fzero(@prueba, [x1,x2]) calcula una raíz en el intervalo x1-x2. Es necesario que la<br />
función tenga distinto signo en los extremos <strong>de</strong>l intervalo.<br />
fzero(@prueba, x, options) calcula la raíz más próxima a x con ciertas opciones <strong>de</strong>finidas<br />
en la estructura options. Esta estructura se crea con la función<br />
optimset.<br />
La función optimset tiene la siguientes formas generales:<br />
options = optimset('param1',val1,'param2',val2,...<br />
en la que se indican los nombres <strong>de</strong> los parámetros u opciones que se <strong>de</strong>sean modificar y los valores<br />
que se <strong>de</strong>sea dar para cada uno <strong>de</strong> dichos parámetros.<br />
options = optimset(oldopts, 'param1',val1,'param2',val2,...)<br />
en la que se obtienen unas nuevas opciones modificando unas opciones anteriores con una serie <strong>de</strong><br />
parejas nombre-valor <strong>de</strong> parámetros.<br />
Existen muchas opciones que pue<strong>de</strong>n ser <strong>de</strong>finidas por medio <strong>de</strong> la función optimset. Algunas<br />
<strong>de</strong> las más características son las siguientes (las dos primeras están dirigidas a evitar procesos<br />
iterativos que no acaben nunca y la tercera a controlar la precisión en los cálculos):<br />
MaxFunEvals<br />
MaxIter<br />
TolX<br />
máximo número <strong>de</strong> evaluaciones <strong>de</strong> función permitidas<br />
máximo número <strong>de</strong> iteraciones<br />
error máximo permitido en la abscisa <strong>de</strong> la raíz<br />
Ahora se va a calcular el mínimo <strong>de</strong> la función prueba. Defínase una función llamada<br />
prueba2 que sea prueba cambiada <strong>de</strong> signo, y trátese <strong>de</strong> reproducir en el PC los siguientes comandos<br />
y resultados (para calcular máximos con fmin bastaría con cambiar el signo <strong>de</strong> la función):<br />
>> plot(x,prueba2(x))<br />
>> fminbnd(@prueba2, -1,2)<br />
ans =<br />
0.3004<br />
>> fminbnd(@prueba2, 0.5,1)<br />
ans =<br />
0.8927<br />
También a la función fminbnd se le pue<strong>de</strong> pasar la estructura options. Por ejemplo, para fijar<br />
un error <strong>de</strong> 10 -08 se pue<strong>de</strong> proce<strong>de</strong>r <strong>de</strong>l siguiente modo:<br />
>> options=optimset('TolX', 1e-08);<br />
>> fminbnd(@prueba2, 0.5,1, options)