Método de Bisección usando Matlab
Enviado por jessica232 • 23 de Abril de 2020 • Síntesis • 431 Palabras (2 Páginas) • 225 Visitas
Nombre: Jessica Ibarra Morales | Matrícula: 201917949 |
Nombre del curso: Métodos numéricos | Nombre del profesor: Lic. César |
Unidad: Solución de Ecuaciones Algebraicas | Actividad: Método de Bisección usando Matlab |
Fecha: 01/04/2020 |
Evalúe la raíz de una función no lineal mediante la aplicación del método de bisección y comprueba el siguiente resultado en el intervalo [-1.2] para la función:[pic 5]
[pic 6]
La propuesta es la siguiente:
function [c,fc,err,k,P] = bisect (f,a,b,delta,itm)
Datos de Entrada
f: función de entrada
a,b: extremos del intervalo de cálculo
delta: error máximo admisible
itm: número de iteraciones máximas a calcular
Datos de Salida
c: valor estimado de la raíz de la función
fc: valor de la función en c
err: error cometido en la estimación de c
k: iteración en la que se ha alcanzado la solución
P: valores de los intervalos de cálculo en cada iteración
Algoritmo
[pic 7]
[pic 8]
[pic 9]
Editor
- function [c,fc,err,k,P] = bisect (f,a,b,delta,itm)
- P=[a,b];
- x=a;
- fa=eval(f);
- x=b;
- fb=eval(f);
- if fa*fb>0
- disp('Los signos de f(a) y f(b) tienen que sesr distintos.')
- else
- for k=1:itm
- c=(a+b)/2;
- x=c;
- fc=eval(f);
- if fc==0
- a=c;
- b=c;
- elseif fb*fc>0
- b = c;
- else
- a = c;
- end
- P=[P;a b]
- if abs (b-a) < delta
- break
- end
- x=b;
- fb=eval(f);
- end
- c = (a+b)/2;
- x=c;
- fc=eval(f);
- err = (a-b)/2;
- end
- end
Using the default configuration.
>> f='x^3+4*x^2-10' [ENTER][pic 10]
>> a=-1 [ENTER][pic 11]
>> b=2 [ENTER][pic 12]
>> delta=10^-4 [ENTER][pic 13]
...