楼主: zhangyu_nk
11623 9

【求助】如何用1stopt求解变参数非线性方程组 [推广有奖]

  • 0关注
  • 0粉丝

大专生

58%

还不是VIP/贵宾

-

威望
0
论坛币
2201 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
149 点
帖子
4
精华
0
在线时间
114 小时
注册时间
2007-4-3
最后登录
2025-7-15

楼主
zhangyu_nk 发表于 2007-4-4 00:19:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
编程方面的知识较弱,请大侠们指教,问题如下:
一个非线性方程组如下:
y1 = u*s*w1+(1-u)/2;
y2 = u*(1-s)*w2+(1-u)/2;
g1 = (s*w1^(1-d)+(1-s)*(w2*t)^(1-d))^(1/(1-d));
g2 = (s*(w1*t)^(1-d)+(1-s)*w2^(1-d))^(1/(1-d));
w1 = (y1*g1^(d-1)+y2*g2^(d-1)*t^(1-d))^(1/d);
w2 = (y1*g1^(d-1)*t^(1-d)+y2*g2^(d-1))^(1/d);
o1 = w1*g1^(-u);
o2 = w2*g2^(-u);
在给定参数d,u,t和s时可利用1stopt软件求解,我的做法如下:
constant d=5, u=0.4, t=1.7, s=0.2;
Parameters y1, y2, g1, g2, w1, w2, o1, o2;
Function y1 = u*s*w1+(1-u)/2;
y2 = u*(1-s)*w2+(1-u)/2;
g1 = (s*w1^(1-d)+(1-s)*(w2*t)^(1-d))^(1/(1-d));
g2 = (s*(w1*t)^(1-d)+(1-s)*w2^(1-d))^(1/(1-d));
w1 = (y1*g1^(d-1)+y2*g2^(d-1)*t^(1-d))^(1/d);
w2 = (y1*g1^(d-1)*t^(1-d)+y2*g2^(d-1))^(1/d);
o1 = w1*g1^(-u);
o2 = w2*g2^(-u);
现在想考察方程组的解(如o1或o2)与参数s之间的关系,并想将其绘成曲线图的形式,则需要对s在[0,1]区间上选取若干值并在这些取值下分别对方程组求解,手动计算方式很繁琐,请高手指教,1stopt软件中是否有相应的循环命令可以实现对方程组在不同参数下的求解呢?具体应该如何操作?谢谢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:非线性方程组 线性方程组 非线性方程 线性方程 Stop 方程 求解 参数 非线性

沙发
dingd 发表于 2007-4-7 19:38:00

在新版中可以实现,S从0到1,增幅0.1:

constant d=5, u=0.4, t=1.7;
LoopConstant s=[0:0.1:1];
Parameters y1, y2, g1, g2, w1, w2, o1, o2;
Function y1 = u*s*w1+(1-u)/2;
y2 = u*(1-s)*w2+(1-u)/2;
g1 = (s*w1^(1-d)+(1-s)*(w2*t)^(1-d))^(1/(1-d));
g2 = (s*(w1*t)^(1-d)+(1-s)*w2^(1-d))^(1/(1-d));
w1 = (y1*g1^(d-1)+y2*g2^(d-1)*t^(1-d))^(1/d);
w2 = (y1*g1^(d-1)*t^(1-d)+y2*g2^(d-1))^(1/d);
o1 = w1*g1^(-u);
o2 = w2*g2^(-u);

藤椅
zhangyu_nk 发表于 2007-4-8 21:45:00
感谢指教。。不过我试了一下好像不行,1stopt把s也当成参数解出来了。不知道是不是我的软件版本的问题?我用的是1.5版,请问一下您说的新版本是哪一版呢?谢谢

板凳
no3no4 发表于 2007-4-28 17:52:00

新版本好像是2.0

报纸
zjzza 发表于 2007-4-28 22:02:00

111806.pdf (72.99 KB)
其实用lingo和matlab综合起来做,很简单

[此贴子已经被作者于2007-4-28 22:29:30编辑过]

111796.pdf
下载链接: https://bbs.pinggu.org/a-111796.html

18.73 KB

111797.pdf

18.73 KB

地板
cancenry 发表于 2007-4-28 22:50:00

太厉害啦,能不能把程序贴出来啊,学习一下

7
5039899 发表于 2007-9-16 11:03:00
迭代数: 1067
计算用时(时:分:秒:毫秒): 00:00:07:130
计算中止原因: 达到收敛判定标准
优化算法: 最大继承法
函数表达式 1: y1-(0.4*s*w1+(1-0.4)/2)
2: y2 -( 0.4*(1-s)*w2+(1-0.4)/2)
3: g1 -( (s*w1^(1-5)+(1-s)*(w2*1.7)^(1-5))^(1/(1-5)))
4: g2 -( (s*(w1*1.7)^(1-5)+(1-s)*w2^(1-5))^(1/(1-5)))
5: w1 -( (y1*g1^(5-1)+y2*g2^(5-1)*1.7^(1-5))^(1/5))
6: w2 -( (y1*g1^(5-1)*1.7^(1-5)+y2*g2^(5-1))^(1/5))
7: o1 -( w1*g1^(-0.4))
8: o2 -( w2*g2^(-0.4))
目标函数值: 0.0217990999052701
y1: 0.501802893200856
y2: 0.452653564044191
g1: 0.952346389123628
g2: 1.11383104340455
w1: 0.847420753911626
w2: 0.943108031978211
o1: 0.864134053831181
o2: 0.903303548671354
s: 0.595344438610992

8
sydj_406 发表于 2009-9-4 22:26:04
帮你顶顶
。。

9
sharklionztj 发表于 2012-7-4 23:31:26
5039899 发表于 2007-9-16 11:03
迭代数: 1067计算用时(时:分:秒:毫秒): 00:00:07:130计算中止原因: 达到收敛判定标准优化算法: 最大继承法函 ...
目标函数值0.02就能算收敛了吗?这个解有效吗?

10
mjjackey 发表于 2015-2-28 12:23:49
楼主,你这个问题最后怎么解决的?
我也要用到变参数,不过我不是循环的常量,是每次从表格里读取一组数据,我在1.5破解免安装版里,用如下两种方式,都不行啊,也都是把参数都当成变量来求了。
BatchFileModel; //法一

VarConstant Bx="Sheet1[A1:A240]";

VarConstant By="Sheet1[B1:B240]";

VarConstant Bz="Sheet1[C1:C240]";

RowDataSet; //法二

Bx="Sheet1[A1:A240]";

By="Sheet1[B1:B240]";

Bz="Sheet1[C1:C240]";

EndRowDataSet;

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 01:23