matlab为什么求解方程系数出现a=[ empty sym],急求!!!!!!
答案:2 悬赏:0 手机版
解决时间 2021-03-22 18:37
- 提问者网友:饥饿走向夜
- 2021-03-21 22:01
x=[10 10 10 10 10 12.5 16]; y=[4 4.8 5.5 6 4.8 4.8 4.8]; z=[0.7 0.73 0.72 0.65 0.725 0.75 0.77]; 要把(((x.^2-p(1)).^2+p(2))*p(3)).^(p(4)*v./(v1*y))*p(7)*(20+p(6)*20*(p(5)-20)) 的p1 p2 p3 p4 p5 p6 p7求出来,求大神告诉我方法
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-03-21 22:45
v和v1的值是多少
全部回答
- 1楼网友:千夜
- 2021-03-22 00:15
你好
你的方程这么复杂,matlab在符号计算没有mathmatic等强(可能这个软件业解不出来),它求出来显示解(机器不是万能的),像这么复杂的方程,给你点建议:
1. 手工加电脑简化方程,再试试。
2. 用数值算法(fsolve)计算。不能求出omega与t的关系。(推荐)
假设你用数值算法,可以把这些方程保存为一个函数,给omega和t一个任意初始值,求最后的方程eq=gp-gpt为0的解。
例如:将下面的代码保存为testt.m函数。
function eq=testt(ot)
omega=ot(1);
t=ot(2);
f=3.125;
w=8.2;
% syms omega;
gp=(((100*(omega-5).*f)./(((omega-5).^2-w^2).^2+(2*(omega-5).*f).^2))+0.55)/1.6;
a=(w^2-2*f^2)/2;
b=sqrt(w^4+4*f^4-4*f^2)/2;
m=sqrt(a+b);
n=sqrt(b-a);
c=125*f/(16*m*n*(n^2+m^2));
% syms t;
d1=-n*(m^2+n^2)*exp(-n*t)*cos((5-m+omega)*t);
d2=(m^2+n^2)*(5-m+omega)*exp(-n*t)*sin((5-m+omega)*t);
d3=n*(m^2+n^2);
dm=2*(n^2+(5-m+omega)^2);
d=(d1+d2+d3)/dm;
e1=-n*(m^2+n^2)*exp(-n*t)*cos((5-m-omega)*t);
e2=(m^2+n^2)*(5-m-omega)*exp(-n*t)*sin((5-m-omega)*t);
e3=n*(m^2+n^2);
em=2*(n^2+(5-m-omega)^2);
e=(e1+e2+e3)/em;
g1=(n*(m^2-n^2)-2*m*n*(5+m+omega))*exp(-n*t)*cos((5+m+omega)*t);
g2=(-(m^2-n^2)*(5+m+omega)-2*m*n^2)*exp(-n*t)*sin((5+m+omega)*t);
g3=-n*(m^2-n^2)+2*m*n*(5+m+omega);
gm=2*(n^2+(5+m+omega)^2);
g=(g1+g2+g3)/gm;
k1=(n*(m^2-n^2)-2*m*n*(5+m-omega))*exp(-n*t)*cos((5+m-omega)*t);
k2=(-(m^2-n^2)*(5+m-omega)-2*m*n^2)*exp(-n*t)*sin((5+m-omega)*t);
k3=-n*(m^2-n^2)+2*m*n*(5+m-omega);
km=2*(n^2+(5+m-omega)^2);
k=(k1+k2+k3)/km;
gpt=d+e-g-k;
eq=gp-gpt;
然后在命令窗口中输入下面的代码:
clear,clc
x0=[2 2];
[xj,fval]=fsolve(@testt,x0)
求解结果如下:
xj = -56.2901 42.6107;
fval = -2.5612e-010;
fval 已经接近于0,说明求解已经收敛,
这只是另外一种变通的方法,有时matlab无法求解符号问题,只能采用这种方法。这种方法对更加复杂的模型,也同样适应。
希望对你有帮助!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯