24小时热门版块排行榜    

查看: 518  |  回复: 3
本帖产生 1 个 博学EPI ,点击这里进行查看

sqking

金虫 (正式写手)

[求助] 求解方程

各位虫友,我在读文献的过程中想验证一个模型的正确性,需要解一个方程,具体如下:tan(X)=3/(3/(X)+0.2092*X) (变量为X)。请大家帮忙解答,给出其中的10个大于0的解,谢谢!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

灰头灰雀

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
sqking: 金币+10, 博学EPI+1, 有帮助 2013-07-22 19:26:44
这个问题可以用matlab来解决。具体的解法是:1、首先,令f=3./(3./(X)+0.2092*X) -tan(X),则问题转化为求解f函数的零点问题。2、然后确定区间:取x的取值区间为[0,20],在matlab中输入为x=0:0.1:20。然后做出图形:plot(x,f)。在图形中可以看出区间正好包含了10个所需零点位置。3、求零点值:在图形中可以大致看出零点的位置则用fzero函数可以求解具体位置。比如第一个零点在2附近,则输入fzero('3./(3./(X)+0.2092*X) -tan(X)',2),则可以得到第一个零点为1.5708,依此类推可以得出前十个零点值为1.5708、4.2204、4.7124、7.2811、7.8540、10.3111、10.9956、13.3489、14.1372、16.4008。
坚持就是胜利
2楼2013-07-22 14:24:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lam987

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
sqking: 金币+10, 有帮助 2013-07-22 19:26:55
楼上的方法有问题,第一个数验证就不对。
通过matlab求解
syms x
y=solve('tan(x)*(3/x+0.2029*x)=3','x')
y=
   [-10.31114532]
   [                   ]
   [-13.34888952]
   [                   ]
   [-7.281075701]
   [                   ]
   [       0.          ]
有四个结果,分别是-10.31114532,-13.34888952,-7.281075701和0,而“0”有没有意义还需另说。
3楼2013-07-22 19:23:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sqking

金虫 (正式写手)

谢谢,实验室有高人,已经把这个问题搞定了。
4楼2013-07-22 19:27:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sqking 的主题更新
信息提示
请填处理意见