Sei sulla pagina 1di 2

FZERO: UNA FUNCION PREDEFINIDA POR MATLAB PARA LOCALIZAR RAICES DE

ECUACIONES DE 1-VARIABLE INDEPENDIENTE

Esta función se usa para encontrar una raíz de una ecuación 𝑓 𝑥 = 0 cuya función
asociada debe ser continua y de la cual debemos conocer una aproximación inicial 𝑝_𝑜 o
un intervalo inicial 𝑎𝑜 , 𝑏𝑜 donde la función misma experimente un cambio de signo, es
decir, 𝑓 𝑎𝑜 ∗ 𝑓 𝑏𝑜 < 0.

La sintaxis básica que debemos manejar es la siguiente:


x_r=fzero(fun,x0,options).

Donde:

fun es una implementación en Matlab de la expresión matemática que representa la


función asociada a la ecuación. Como ya se discutió en un documento anterior, la
ecuación se puede implementar usando un estilo de “function” o usando la sintaxis “@(
)funcion”.

x0 es la aproximación inicial 𝑝_𝑜 siendo esta un escalar real o acepta un intervalo con
dos escalares separados por coma así, 𝑎𝑜 , 𝑏𝑜 . En este curso de análisis numérico, el
problema debe darnos pistas sobre el particular. El método podría fallar si este parámetro
de entrada no es conocido con buena confianza!!!. Una gráfica de la ecuación puede ser
crucial para garantizar la existencia de la raíz.

Options es un dato compuesto por varias opciones que modifican características de


fzero. La siguiente sintaxis es útil para nosotros en este nivel, pues obtenemos
información de la convergencia del método y de poder cambiar el criterio de paro respecto
a la tolerancia: options=optimset('Display','iter','TolX',1e-8)
x_r es la salida del método que representa en el mejor de los casos (si converge) la raíz
cercana a 𝑝_𝑜 o aquella que está encerrada en el intervalo 𝑎𝑜 , 𝑏𝑜 hasta la tolerancia
pedida.
Aplicación.
Implemente las siguientes instrucciones en Matlab usando un script con el identificador
“usando_fzero”:
clc, clear
a=2;
func=@(x)exp(x)-a*x.^2;
options=optimset('Display','iter','TolX',1e-8);
p_o=[1,2];
x_r=fzero(@(x)func(x),p_o,options);
x=linspace(p_o(1),p_o(2),100);
y=func(x);
plot(x,y,'k'), hold on

Prof. Gail Gutiérrez- Asignatura de Análisis Numérico Grupo 01.


plot(x_r,func(x_r),'bd')
plot(x, zeros(length(x)),'r')
Sugerencias:
 Coloque los respectivos comentarios a cada una de las instrucciones que se dan.
 Reescriba el programa usando el estilo de “function” para llamar la ecuación desde el
programa principal. Escriba la “function” usando el concepto de sub-funcion en Matlab.
 Pregunte en clase sobre lo que significan los resultados de las iteraciones que se
arrojan en la ventana de comandos después de ejecutar el programa. En particular:
Func-count x f(x) Procedure
2 2 -0.610944 initial
3 1.54038 -0.0791721 interpolation
4 1.47874 0.0140709 interpolation
5 1.48804 -0.000119946 interpolation
6 1.48796 -1.50305e-007 interpolation
7 1.48796 5.68434e-014 interpolation
8 1.48796 5.68434e-014 interpolation

Zero found in the interval [1, 2]

BIBLIOGRAFIA
J. García de Jalón & J. Ignacio. Aprenda Matlab 7.0 como si estuviera en primero.
Universidad Politécnica de Madrid,
http://webdelprofesor.ula.ve/ingenieria/albornoz/matlab7.pdf (Consultado 12 de Octubre
del 2010). Paginas consultadas: 85-85.

Ayuda de Matlab [en línea]. Disponible en:


http://www.mathworks.com/help/techdoc/ref/fzero.html (Consultado 12 de Octubre del
2010)

Prof. Gail Gutiérrez- Asignatura de Análisis Numérico Grupo 01.

Potrebbero piacerti anche