matlab中solve函数

symsc1c2c3b=0.05;q=0.8;d=0.6;s=0.4;G=60;g=10;alpha=pi/2-c2+c1;belta=c3+c2-c1-pi/2;m0=... syms c1 c2 c3
b=0.05;q=0.8;d=0.6;s=0.4;G=60;g=10;
alpha=pi/2-c2+c1;belta=c3+c2-c1-pi/2;
m0=G/(q+d+s);
syms x y
f1=m0*g*x;f2=m0*g*y;
syms r
P1=int(int(f1,x,0,d*cos(alpha)-r*cos(belta)),r,0,q);
syms t
P2=int(int(f2,y,0,t),t,0,d*cos(alpha));
P=(P1+P2)/b;
N=sin(pi-c2+c1-asin(G*sin(c2-c1)/P))*P/sin(c2-c1)
[c1,c2,c3]=solve('diff(N,c1)','diff(N,c2)','diff(N,c3)')
错在哪了呢
展开
 我来答
lhmhz
高粉答主

2015-05-03 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16991

向TA提问 私信TA
展开全部
错在这句,[c1,c2,c3]=solve('diff(N,c1)','diff(N,c2)','diff(N,c3)'),因为软件认为diff(N,c1)只是一个变量符号,所以造成程序出错。正确用法应该这样来处理,
eq1=diff(N,c1);eq2=diff(N,c2);eq3=diff(N,c3);
[c1,c2,c3]=solve(eq1,eq2,eq3)
经运行,得到结果是无解,即无解析解。
所以在这里用solve是不合适的,但可以用数值方法来求解。如拟牛顿法求解非线性方程

c1 = -1049.030130
c2 =1057.363644
c3 =5541.813541
N=486.5147
追问
能不能把牛顿法的程序看一下呢
追答
你觉得满意,请采纳,关于牛顿法的程序是否请另行开题,谢谢你对我的支持。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式