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)')
错在哪了呢 展开
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)')
错在哪了呢 展开
1个回答
展开全部
错在这句,[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
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
追问
能不能把牛顿法的程序看一下呢
追答
你觉得满意,请采纳,关于牛顿法的程序是否请另行开题,谢谢你对我的支持。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询