Encontrar la raíz de una usando programación en matlab usando el método de bisección y el método de iteración de Newton

Para encontrar raíces cuadradas, el patrón de ecuación se convierte en f(x)=x^2-a, es decir, encontrar las raíces reales de esta ecuación;

Se escriben dos funciones A continuación, se puede llamar directamente.

Método de bisección:

función x=sqrt_bisect(a)

f=@(x)x^2-a;

if a<0

advertencia(['Los números negativos no se pueden elevar al cuadrado']);

x=[];

elseif a==0|a = =1

x=a;

si no

si a<1

xa=a;xb=1;

else

xa=1.00;xb=a;

fin

while abs(xa-xb)>1e-6

x=(xa+xb)/2;

si f(xb)*f(x)>0

xb=x;

elseif f(xa)*f(x)>0

xa=x;

else

romper

fin

end

end

x;

Método de iteración de Newton:

función x=sqrt_newton(a)

f=@(x)x^2-a;

df=diff(sym('x^2-a'));

si a< 0

advertencia('Los números negativos no tienen raíces cuadradas reales');

x1=[];

elseif a==0;

x1 =a;

else

x0=a;

x1=x0-f(x0)/subs(df,x0);

while abs(x1-x0)>1e-6

x0=x1;

x1=x0-f(x0)/subs(df,x0) ;

end

end

x=x1;

El formato de llamada es:

sqrt_bisect(3 )

ans =

1.7321

o

sqrt_newton(2)

ans =

1.4142