宝树哥 发表于 2006-11-9 15:21

求救(循环求根)

程序如下:
function root
syms rk;
for i=1:15
   k=i;
   f=inline('k*632.8e-6+(1/28800*(5348303769600-183623616*r^2-24144*r^4+r^6)^(1/2)+207831/200/(5329-2500*r^2/(14400+r^2))^(1/2)+(10000+(1/120*(397/10+1/240*r^2)*r-975/2*r/(14400+r^2)^(1/2)/(5329-2500*r^2/(14400+r^2))^(1/2))^2)^(1/2)-38907/200)','r','k')
   r=fzero(f,0)
end
目的,求当k从1到15取值时求方程的根,运行结果提示:Not enough inputs to....,请问各路大侠该如何修改此程序,
命令fzero用的是否恰当?
如果每次计算想以上次的结果为参考点,该如何实现迭代运算?

xjzuo 发表于 2006-11-9 16:48

inline中注意只定义一个变量'r';"Not enough inputs to....,"是因为你定义了两个变量.
fzero的调用方式为:r=fzero(@f,0);
建议先定义function,再调用,可以计算出结果.
页: [1]
查看完整版本: 求救(循环求根)