宝树哥 发表于 2006-11-1 14:31

小菜一问(急)

在学习过程中遇到了一个小问题:
有如下语句:
syms r r1 r2 ;
%r1=(R+r^2/2*R-l1)*r/R;
%r2=r1-d*tan(asin(sin(atan(r/R)))/n);
=solve('r1=(R+r^2/2*R-l1)*r/R','r2=r1-d*tan(asin(sin(atan(r/R)))/n)','r','r1')其中n,d,l1,R都是函数的参数,目的是想从以上语句中将r和r1用r2表示,
我用slove命令提示解不出,
若将n,d,l1,R的具体值带入计算,结果为:empty sym

请教高手该如何计算.Thank you!

[ 本帖最后由 lxq 于 2006-11-8 21:55 编辑 ]

yanyongju 发表于 2006-11-8 21:22

有时候,没有具体的符号解。
你把式子化一下,化为一边为=0,试一下,也许可以

xjzuo 发表于 2006-11-8 22:13

回复

用Matlab求了一下,找不到解析解.
我用Mathematica也算了一下原式,结果显示为不能用代数方式求解.
看来只能给定参数值,采用数值求解了.

[ 本帖最后由 xjzuo 于 2006-11-8 22:24 编辑 ]

xjzuo 发表于 2006-11-8 23:19

回复

我算了一个情形,即任取 l1= 1; R = 0.5; n = 2; d = 3时,可以作如下处理:
先定义非线性方程组function;然后r2作一个for循环,用fsolve求解function,得到一系列解{r,r1},最后可以plot(r2,r)以及plot(r2,r1),得到图形。

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

请问楼上的朋友
"r2作一个for循环"
怎么理解?

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

回复

for r2=1:n

调用fosolve()

end
页: [1]
查看完整版本: 小菜一问(急)