24小时热门版块排行榜    

CyRhmU.jpeg
查看: 4210  |  回复: 15
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xiangzigood

新虫 (初入文坛)

[求助] matlab fsolve得出的解全部为复数解

我用matlab中的FSOLVE解一个六元非线性方程组,为什么得出的解全部为复数解,可是理论上应该解为实数,本人Matlab新手,代码如下,大神们帮忙看一下吧!
function[x,x0,fval,exitflag]=fsolveyalinjieliu
d=0.045;D=0.05;k=1.4;ff=0.004;L=100;P1=1500000;T1=300;Pa=101325;M=29;R=8.314;
x0=unifrnd(0,1,1,6);
options=optimset('MaxFunEvals',20000,'MaxIter',5000);
[x,fval,exitflag]=fsolve(@f,x0,options);
function F=f(x)
F=[((k+1)/2)*log((x(2)^2*x(3))/(x(1)^2*x(4)))-(1/(x(1)^2)-1/(x(2)^2))+4*ff*L/D;
   (d^2/D^2)*x(5)*sqrt((2*k*M)*((Pa/x(5))^(2/k)-(Pa/x(5))^((k+1)/k))/(R*x(6)*(k-1)))-x(2)*x(5)*sqrt((k*M)/(R*x(6)));
   (d^2/D^2)*x(5)*sqrt((2*k*M)*((Pa/x(5))^(2/k)-(Pa/x(5))^((k+1)/k))/(R*x(6)*(k-1)))-x(1)*P1*sqrt((k*M)/(R*T1));
   1+((k-1)*x(1)^2)/2-x(3);  
   1+((k-1)*x(2)^2)/2-x(4);  
    ]
end
end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2013-06-18 01:00:00
用1stOpt吧,其它软件得到正解的概率几乎为0:
CODE:
Parameter x(6);
Constant d=0.045,D1=0.05,k=1.4,ff=0.004,L=100,P1=1500000,T1=300,Pa=101325,M=29,R=8.314;
Function ((k+1)/2)*ln((x2^2*x3)/(x1^2*x4))-(1/(x1^2)-1/(x2^2))+4*ff*L/D1;
        (D1^2/D1^2)*x5*sqrt((2*k*M)*((Pa/x5)^(2/k)-(Pa/x5)^((k+1)/k))/(R*x6*(k-1)))-x2*x5*sqrt((k*M)/(R*x6));
        (D1^2/D1^2)*x5*sqrt((2*k*M)*((Pa/x5)^(2/k)-(Pa/x5)^((k+1)/k))/(R*x6*(k-1)))-x1*P1*sqrt((k*M)/(R*T1));
        1+((k-1)*x1^2)/2-x3;
        1+((k-1)*x2^2)/2-x4;
        x6-(x3*T1)/x4;

x1: 0.157422221916776
x2: 0.404163373392218
x3: 1.0049585658072
x4: 1.03267007875412
x5: 576359.723370304
x6: 291.949554479051
13楼2013-06-17 14:25:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
似乎是5个方程6个未知数,无穷组解。
2楼2013-06-15 17:38:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

【答案】应助回帖

感谢参与,应助指数 +1
有些虚部非常小的,应该是误差,其实就是实数解,忽略虚部即可。
3楼2013-06-15 17:53:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiangzigood

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dingd at 2013-06-15 17:38:26
似乎是5个方程6个未知数,无穷组解。

本来是六个方程的,由于得出的是复数解,然后我就删掉了一个试试
4楼2013-06-16 08:25:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见