Matlab迭代法求解 x = sqrt(a) 的值

一.代码

%使用了函数sq.m文件
function x = sq(a)
%使用牛顿迭代法计算 x = sart(a) 的结果
if a<0
    warning('负数无实平方根');
end
x = a/2;  %初始时的x值
while 1
    x1 = (x+a/x)/2;
    x2 = x-x1;   %前后两次结果之差处于精度范围内则输出
    if abs(x2)<1e-5
        break;
    end
    x = x1;  %最后输出的是x1的值
end
end

调用结果

Matlab迭代法求解 x = sqrt(a) 的值_第1张图片

二.注意

1)首先注意的一点是开始时的x值,这里我直接取a/2进行赋值,然后再套用公式进行迭代找到精度范围内合适的数。
2)这个a可正可负,但是如果为负数那么返回的结果就是虚数。
3)最后注意返回的值为最后一次迭代产生的结果,所以函数最后有x=x1这一操作。

你可能感兴趣的:(Matlab,matlab)