Esto tiene un ejemplo
Método de bisección por intervalo:
Igual que el método de búsqueda de bisección
1
Intervalo El método de bisección solo obtiene una única raíz de la ecuación si la ecuación tiene múltiples raíces o múltiples raíces, se producirá una bifurcación al realizar la bisección de intervalos. De esta manera, si la ecuación tiene varias raíces, se generarán varias secuencias de números reales. el límite de cada secuencia de números reales es una raíz de la ecuación
2
El método de bisección de intervalos generalmente se usa para proporcionar un valor alternativo inicial cercano a x^* para algunos métodos iterativos;
3
La desventaja del método de bisección de intervalos es que no puede encontrar las raíces complejas de la ecuación.
formato
largo
a=5;
b=6
x1=a;
x2=b;
f1=4*cos(x1) 4*sin(x1) 0.5*x1-2;
f2=4*cos( x2) 4*sin(x2) 0.5*x2-2;
paso=0.000001;
ii=0;
mientras
abs(x1-x2)gt; paso
ii=ii 1;
x3=(x1 x2)/2;
f3=4*cos (x3) 4*sin(x3) 0.5*x3-2;
si
f3~=0
si
f1 *f3lt;0
x2=x3;
else
x1=x3;
fin
fin
fin
x3
f=[4*cos(x3) 4*sin(x3) 0.5*x3]
disp (['Número de iteraciones:', num2str(ii), 'times'])
Método de iteración de Newton:
Cuando la ecuación f(x)=0 tiene raíces reales Siguiente , si la ecuación se puede transformar de manera equivalente en la forma x=g(x), entonces tome un valor inicial x0 y sustitúyalo en el extremo derecho de x=g(x), calcule x1=g(x0), y luego calcule x2=g( x1), y así sucesivamente
x(k 1)=g(x(k))
Se puede obtener una secuencia xk como G(x). Generalmente se llama función iterativa. La secuencia xk es la secuencia de iteración generada por la función de iteración y x0 es el valor inicial de la iteración.
El método iterativo resultante de la conversión de una misma ecuación en diferentes formas equivalentes puede converger o divergir. Existe el siguiente teorema sobre el juicio de convergencia del método iterativo (también llamado teorema de Lipschitz):
Si la función iterativa g(x) es continua en el intervalo [a, b] y satisface lo siguiente condiciones,
1
Para cualquier x=[a, b], existe g(x)=[a, b]
2
En el intervalo (a, b), la función g(x) satisface la condición de Lipschitz, es decir, existe una constante Lgt 0, de modo que para cualquier x, y=(a, b), existe; es |g(x) -g(y)|=
0.000001
x0=x1;
x1=x1-(4*(cos(x0 ) sin(x0)) 0.5*x0-2)/(4*(cos(x0)-sin(x0)) 0.5);
end
f=4*( cos(x1) sin( x1) 0.5*x1-2)
Método de interceptación de cuerdas:
Método de interceptación de cuerdas de un solo punto:
Conecta los dos puntos finales con la cuerda (a, f (a))
Haga una cuerda con (b, f(b)), y la coordenada de abscisas del punto de intersección de esta cuerda y el eje se establece en p>
x1.
Si f(x1)=0, entonces x1 es la raíz buscada, en caso contrario seleccione el punto (x1, f(x1)) y el punto (a, f(a )) (la selección de este punto debe satisfacer las condiciones f(a) y f ''(x) tiene el mismo signo y se reescribe como (x0, f(x0)).
Haz otra cuerda
Establece la coordenada de abscisa del punto de intersección de esta cuerda y el eje en
x2, y así sucesivamente, el formato de iteración es
xk. 1=xk-f (xk)*(xk-x0)/(f(xk)-f(x0)
Método de interceptación de cuerdas de doble punto:
Sin punto fijo
xk 1=xk-f(xk)*(xk-xk-1)/(f(xk)-f(xk-1)
formato
largo
nx=[];
nx(1)=5;
nx(2)=nx(1)-(2^nx( 1)-nx(1 )^2-1)/(2^nx(1)*log(2)-2*nx(1));
k=1;
mientras
abs(nx(k 1)-nx(k))gt;=10^(-6)
k=k 1;
nx(k 1) =nx(k)-(2^nx(k)-nx(k)^2-1)/(2^nx(k)*log(2)-2*nx(k)) ;
end
nk=k 1;
disp(['Número de iteraciones del método de iteración de Newton:', num2str(nk), espacios en blanco(4 ), 'Solución de ecuación:' , num2str(nx(nk))])
dx=[];
dx(1)=5;
dx(2)=dx( 1)-(2^dx(1)-dx(1)^2-1)/((2^3-3^2-1)-(2^5-5^2 -1))*(3- 5);
k=1;
mientras
abs(dx(k 1)-dx(k)) gt;=10^(-6 )
k=k 1;
dx(k 1)=dx(k)-(2^dx(k)-dx(k )^2-1)/( (2^dx(k)-dx(k)^2-1)-(2^5-5^2-1))*(
dx(k )-5);
end
disp(['Número de iteraciones del método de iteración de un solo punto:', num2str(k), espacios en blanco(4), 'Solución de la ecuación :', num2str(dx(k))] )
sx=[];
sx(1)=5;
sx(2)= 3;
k= 1;
mientras
abs(sx(k 1)-sx(k))gt;=0.000001
k=k 1;
sx(k 1)=sx(k)-((2^sx(k)-sx(k)^2-1)/((2^sx( k)-sx(k)^2-1 )-(2^sx(k-1)-sx(k-1)^2-1)))*(sx(k)-sx(k-1)) ;
end p>
sk=k 1;
disp(['Número de iteraciones del método de iteración de dos puntos:', num2str(sk), espacios en blanco (4), 'Solución de la ecuación:', num2str(sx (sk))])
x=3:0.05:5;
y=2.^x-x.^ 2-1;
yn=zeros (1,nk);
yd=zeros(1,sk);
subtrama(1,2,1 )
plot(x,y, sx, yd, '*')
title('Método de interceptación de cuerdas de dos puntos')
gtext(' y=2^x-x^2-1')
subtrama(1, 2, 2)
trama(x, y, nx, yn, '*')
t
itle('Método de iteración de Newton')
gtext('y=2^x-x^2-1')