查看: 1121|回复: 1|关注: 0

[已答复] 运用牛顿法求解非线性方程组,结果与预期想、差别太大

[复制链接]

新手

10 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
发表于 2018-7-29 13:34:05 | 显示全部楼层 |阅读模式
本帖最后由 hlyjwll 于 2018-7-29 13:37 编辑

以下为自己输入的式子
syms x1 x2
td=0.03;
theta=0.05;
alpha=600;
lamda=-0.04;
A=200;
CP=7;
Ch=5;
Cd=1;
Cs=3;
P1=25;
P2=15;
S1_1=(P2+Ch/theta+Cd+Cs/lamda*(1+lamda*x2-exp(lamda*x2)))*exp(lamda*(x1-td));
S1_2=-(CP+Ch*(theta*td+1)/theta+Cd)*exp((lamda+theta)*(x1-td));
S1_3=exp(lamda*(x1-td))/lamda*(P2+Ch/theta+Cd+Cs/lamda*(1+lamda*x2-exp(lamda*x2)));
S1_4=-exp((lamda+theta)*(x1-td))/(lamda+theta)*(CP+Ch*(theta*td+1)/theta+Cd);
S1_5=-Ch*(td^2)/2+(P1-CP)*td;
S1_6=(lamda*Ch*td-P2*(lamda+theta)+lamda*CP-Ch-theta*Cd)/(lamda*(lamda+theta));
S2_1=Cs/lamda*exp(lamda*(x1-td))*(1-exp(lamda*x2));
f1=alpha*(S1_1+S1_2)*(x1+x2)-alpha*(S1_3+S1_4+S1_5+S1_6)+A;
f2=alpha*S2_1*(x1+x2)-alpha*(S1_3+S1_4+S1_5+S1_6)+A;

[x,~,~,iter]=newtons([f1;f2],[0,0]
x1和x2为未知数,其他均为常数,求解出的结果预期应该在0到1之间,但是用书自带的程序算出来t1和t2互为相反数,不知是何缘故。

入门

156 麦片

财富积分


50500


4

主题

454

帖子

34

最佳答案
  • 关注者: 3
发表于 2018-11-14 08:08:20 | 显示全部楼层
把迭代初值改一下看看,因为牛顿法求得的是局部最优解,有时候收敛不到全局最优解
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表