[已答复] 求牛顿法求解根号2的MATLAB程序

[复制链接]
南风岸 发表于 2015-1-7 12:14:27
我是初学者,正在学计算方法,用牛顿法求解根号2的MATLAB程序,希望大神们帮解答,谢谢

2 条回复


18666719439 发表于 2015-1-7 13:25:26
function x=sqrt_newton(a)
f=@(x)x^2-a;
df=diff(sym('x^2-a'));
if a<0
    warning('负数没有实平方根');
    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;
非自编,网上找的,可以用。
N[AJNK2@WQHBU9FGEK5WG)X.jpg

Matlab@leaner 发表于 2021-9-13 21:39:42
18666719439 发表于 2015-1-7 13:25
function x=sqrt_newton(a)
f=@(x)x^2-a;
df=diff(sym('x^2-a'));

大佬,这个程序运行起来也是错误,错误提示代码如下

错误使用 sym>convertChar (第 1580 行)
Character vectors and strings in the first argument can only specify a variable or number. To evaluate character
vectors and strings representing symbolic expressions, use 'str2sym'.

出错 sym>tomupad (第 1296 行)
        S = convertChar(x);

出错 sym (第 234 行)
                S.s = tomupad(x);

出错 experiment1newton (第 4 行)
df=diff(sym('x^2-a'));
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表