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; p >
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 p >
end
end
x;
Método de iteración de Newton:
función x=sqrt_newton(a) p >
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