声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1227|回复: 1

[编程技巧] 求救(循环求根)

[复制链接]
发表于 2006-11-9 15:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
程序如下:
function root
syms r  k;
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用的是否恰当?
如果每次计算想以上次的结果为参考点,该如何实现迭代运算?
回复
分享到:

使用道具 举报

发表于 2006-11-9 16:48 | 显示全部楼层
inline中注意只定义一个变量'r';"Not enough inputs to....,"是因为你定义了两个变量.
fzero的调用方式为:r=fzero(@f,0);
建议先定义function,再调用,可以计算出结果.

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 20:58 , Processed in 0.066271 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表