¡Buscando un programa Matlab que use MATLAB para preparar ecuaciones usando el método de bisección y el método de Newton para encontrar raíces! ! ! Gracias ~

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

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

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