24小时热门版块排行榜    

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

我是xingxing

新虫 (小有名气)

[求助] 10参数非线性方程组 求助 已有2人参与

a+d+2*e+2*f+2*g+2*p=0.05
b+d+2*e+2*g+h+m+n+p=0.025
d/(a*b*c)=10^9.55
e/((a^2)*(b^2))=10^14.43
f*c/((a^2)*(b^2))=10^10.85
g*(c^2)/((a^2)*(b^2))=10^5.87
p*c/(a^2*b)=10^4.92
m*c/h=10^(-2.92)
n*c/m=10^(-4.34)
b*c/n=10^(-5.69)

C值从3变到9 间隔为0.1 。 每取一个c值,求出对应的其他值。‘

有大神可以通过编程帮忙解决吗?不胜感激。’

[ Last edited by 独孤神宇 on 2018-7-19 at 15:23 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by 我是xingxing at 2018-07-18 23:46:30
这个求出来全部正值吗?
...

不是的,这个和初始值有关,当然也可以约束参数范围。

这个初始值太难试了,推荐用1stOpt 计算。
数值计算
4楼2018-07-19 15:20:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

独孤神宇

版主 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
初始值太难试了,可以考虑用 1stOpt ,这还是只是一个参数的 c=3的情况。

function example_18_7_18
c=3;
x0=[1;1;1;1;1;1;1;0.1;0.1;0.1];  %% 设定初始值
options=optimset('MaxFunEvals',20000,'MaxIter',2000);
[x,fval,exitflag]=fsolve(@f,x0,options)
function F=f(x)  %%% 待求方程组
F1=x(1)+x(3)+2*x(4)+2*x(5)+2*x(6)+2*x(10)-0.05;
F2=x(2)+x(3)+2*x(4)+2*x(6)+x(7)+x(8)+x(9)+x(10)-0.025;
F3=x(3)/(x(1)*x(2)*c)-10^9.55;
F4=x(4)/((x(1)^2)*(x(2)^2))-10^14.43;
F5=x(5)*c/((x(1)^2)*(x(2)^2))-10^10.85;
F6=x(6)*(c^2)/((x(1)^2)*(x(2)^2))-10^5.87;
F7=x(10)*c/(x(1)^2*x(2))-10^4.92;
F8=x(8)*c/x(7)-10^(-2.92);
F9=x(9)*c/x(8)-10^(-4.34);
F10=x(2)*c/x(9)-10^(-5.69);
F=[F1;F2;F3;F4;F5;F6;F7;F8;F9;F10];
end
end
数值计算
2楼2018-07-18 22:21:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我是xingxing

新虫 (小有名气)

引用回帖:
2楼: Originally posted by 独孤神宇 at 2018-07-18 22:21:32
初始值太难试了,可以考虑用 1stOpt ,这还是只是一个参数的 c=3的情况。

function example_18_7_18
c=3;
x0=;  %% 设定初始值
options=optimset('MaxFunEvals',20000,'MaxIter',2000);
=fsolve(@f,x0,o ...

这个求出来全部正值吗?

发自小木虫Android客户端
3楼2018-07-18 23:46:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我是xingxing

新虫 (小有名气)

引用回帖:
4楼: Originally posted by 独孤神宇 at 2018-07-19 15:20:05
不是的,这个和初始值有关,当然也可以约束参数范围。

这个初始值太难试了,推荐用1stOpt 计算。...

感觉求不出来了

发自小木虫Android客户端
5楼2018-07-20 09:46:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见