24小时热门版块排行榜    

查看: 427  |  回复: 1

perfectpf123

新虫 (初入文坛)

[求助] matlab牛顿法求助,matlab新手,最近计算方法老师布置的大作业还麻烦大神望一望

function f=fun(x)    %先定义了一个fun函数
f=exp(x)-1

end
----------------------------------------------
function m=newton(a,d,max)     %这是主函数
x(0)=a;
for k=0:max
    f(x(k))=fun(x(k));y(x(k))=diff(fun(x(k)))                    %这里直接调用fun函数没问题吧
    x(k+1)=x(k)-f(x(k))/y(x(k));                 
    disp(sprintf('%d         %f ',k,x(k)));      
    if abs(x(k+1)-x(k))<d                        
        break
    end         
end
end
----------------------------------------
以上是主程序内容,运行指令是
  m=newton(1,0.0001,30)
却出现以下错误
Attempted to access x(0); index must be a positive integer or logical.

Error in newton (line 2)
x(0)=a;
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cjc5367

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
matlab中数组的下表从1开始
2楼2013-11-08 16:32:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 perfectpf123 的主题更新
信息提示
请填处理意见