24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2414  |  回复: 10

fugitivesk

铁虫 (初入文坛)

[求助] 求助!三个未知数 四个方程用1stopt(Anto2Fit)约束优化 已有2人参与

计算小白,新来的没啥金币
用的Anto2Fit 5.5试用版(明明三个parameters为啥说超出四个了)
方程都比较长
不知道为什么三个未知数会出现四个结果
第四个结果好像是我给的常数变量或者变参量(偷梁换柱?)
贴上mathematica里写的表达式(这个软件里运行过三个方程三个变量的求解,方程本身没问题)


Constant  cc = 3*10^8;
                 la = cc/10^9;
                 k0 = 2*pi/la;
                 r1 =0.17532;
                 r2 =0.21216;
                 t1 =0.77139;
                 t2 =-0.3507;
                 
Parameter k1[30,60],k2[-2,0],dz[0.5,0.7];
         
Function a=sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz));
b=cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz));
c=cos(k1*dz)*(exp(-k2*dz)+exp(k2*dz));
d=sin(k1*dz)*(exp(-k2*dz)-exp(k2*dz));
kk=2*(k1^2+k2^2);
(r1*c)-(r2*d)+r1*(b*k1-a*k2)/(2*k0)+r1*(a*k0*k2+b*k0*k1)/kk-r2*(a*k1+b*k2)/(2*k0)-r2*(a*k0*k1-b*k0*k2)/kk-(b*k1-a*k2)/(2*k0)+(a*k0*k2+b*k0*k1)/kk;
(r2*c)+(r1*d)+r1*(a*k1+b*k2)/(2*k0)+r1*(a*k0*k1-b*k0*k2)/kk+r2*(b*k1-a*k2)/(2*k0)+r2*(a*k0*k2+b*k0*k1)/kk-(a*k1+b*k2)/(2*k0)-(b*k0*k2-a*k0*k1)/kk;
(t1*c)-(t2*d)+t1*(b*k1-a*k2)/(2*k0)+t1*(a*k0*k2+b*k0*k1)/kk-t2*(a*k1+b*k2)/(2*k0)-t2*(a*k0*k1-b*k0*k2)/kk+2;
(t2*c)+(t1*d)+t1*(a*k1+b*k2)/(2*k0)+t1*(a*k0*k1-b*k0*k2)/kk+t2*(b*k1-a*k2)/(2*k0)+t2*(a*k0*k2+b*k0*k1)/kk;

//方程我用了两种写法第二种太长了

Function
(r1*cos(k1*dz)*(exp(-k2*dz)+exp(k2*dz)))-(r2*sin(k1*dz)*(exp(-k2*dz)-exp(k2*dz)))+r1*(cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k1-sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k2)/(2*k0)+r1*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k2+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k1)/2*(k1^2+k2^2)-r2*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k1+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k2)/(2*k0)-r2*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k1-cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k2)/2*(k1^2+k2^2)-(cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k1-sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k2)/(2*k0)+(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k2+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k1)/2*(k1^2+k2^2);

(r2*cos(k1*dz)*(exp(-k2*dz)+exp(k2*dz)))+(r1*sin(k1*dz)*(exp(-k2*dz)-exp(k2*dz)))+r1*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k1+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k2)/(2*k0)+r1*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k1-cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k2)/2*(k1^2+k2^2)+r2*(cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k1-sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k2)/(2*k0)+r2*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k2+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k1)/2*(k1^2+k2^2)-(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k1+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k2)/(2*k0)-(cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k2-sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k1)/2*(k1^2+k2^2);

(t1*cos(k1*dz)*(exp(-k2*dz)+exp(k2*dz)))-(t2*sin(k1*dz)*(exp(-k2*dz)-exp(k2*dz)))+t1*(cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k1-sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k2)/(2*k0)+t1*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k2+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k1)/2*(k1^2+k2^2)-t2*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k1+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k2)/(2*k0)-t2*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k1-cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k2)/2*(k1^2+k2^2)+2;

(t2*cos(k1*dz)*(exp(-k2*dz)+exp(k2*dz)))+(t1*sin(k1*dz)*(exp(-k2*dz)-exp(k2*dz)))+t1*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k1+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k2)/(2*k0)+t1*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k1-cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k2)/2*(k1^2+k2^2)+t2*(cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k1-sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k2)/(2*k0)+t2*(sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz))*k0*k2+cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz))*k0*k1)/2*(k1^2+k2^2);

求助!三个未知数 四个方程用1stopt(Anto2Fit)约束优化
22.JPG@月只蓝
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shikang999

新虫 (小有名气)

【答案】应助回帖


fugitivesk: 金币+1, 有帮助 2020-06-28 19:26:45
按你第一种写法, 如果最后四个方程是等于0的约束的话,求得一个如下的解(其中四个方程的误差平方和为2.07045657911154E-05)(注意,下面不是1stopt的结果,所以不保证和1stopt的结果一致)
k1 = 48.5939462992421,  k2 = -0.161774554371271,  dz = 0.588775267394145
我还是那个我,过去如此,未来亦如此!
2楼2020-06-28 15:36:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fugitivesk

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by shikang999 at 2020-06-28 15:36:14
按你第一种写法, 如果最后四个方程是等于0的约束的话,求得一个如下的解(其中四个方程的误差平方和为2.07045657911154E-05)(注意,下面不是1stopt的结果,所以不保证和1stopt的结果一致)
k1 = 48.5939462992421 ...

请问求解思路是什么,用matlab还是mathemetica求解的吗?
3楼2020-06-28 19:11:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fugitivesk

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by shikang999 at 2020-06-28 15:36:14
按你第一种写法, 如果最后四个方程是等于0的约束的话,求得一个如下的解(其中四个方程的误差平方和为2.07045657911154E-05)(注意,下面不是1stopt的结果,所以不保证和1stopt的结果一致)
k1 = 48.5939462992421 ...

我原先就只是四选三作为方程组求解,感觉不能保证误差。四个方程的约束用什么方法比较合适呢?

发自小木虫Android客户端
4楼2020-06-28 19:24:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shikang999

新虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
独孤神宇: 金币+5, 鼓励交流 2020-06-28 20:41:18
fugitivesk: 金币+7, ★★★很有帮助 2020-06-28 21:14:32
引用回帖:
3楼: Originally posted by fugitivesk at 2020-06-28 19:11:15
请问求解思路是什么,用matlab还是mathemetica求解的吗?...

1. 主要使用自己写的MathSword软件进行求解。(PS:附件可以下载MathSword,在打开程序界面最上端选择【高级优化】,在优化模块右键选择上传的附件 solve.vb文件,然后点击求解,就能看到你问题的答案了。)

2. 至于你说的方程用什么约束比较合适,不太明白你的意思。因为一个方程本身就是一个约束,有约束就可以构建误差,一般的优化器内部会根据你构建的1个或多个误差进行优化。

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : MathSword.2020.06.27.rar
  • 2020-06-28 20:08:56, 2.97 M
  • 附件 2 : solve.vb
  • 2020-06-28 20:09:09, 6.46 K
我还是那个我,过去如此,未来亦如此!
5楼2020-06-28 20:26:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
fugitivesk: 金币+12, ★★★★★最佳答案 2020-06-28 21:13:55
代码写的有问题。

k1: 48.5939435307918
k2: -0.161774549680272
dz: 0.588775301298235

------------------------------------------------

Constant  cc = 3*10^8,
r1 =0.17532,
r2 =0.21216,
t1 =0.77139,
t2 =-0.3507,
la = cc/10^9,
k0 = 2*pi/la;
Parameter k1=[30,60],k2=[-2,0],dz=[0.5,0.7];
ConstStr  kk=2*(k1^2+k2^2),
a=sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz)),
b=cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz)),
c=cos(k1*dz)*(exp(-k2*dz)+exp(k2*dz)),
d=sin(k1*dz)*(exp(-k2*dz)-exp(k2*dz));
Function
(r1*c)-(r2*d)+r1*(b*k1-a*k2)/(2*k0)+r1*(a*k0*k2+b*k0*k1)/kk-r2*(a*k1+b*k2)/(2*k0)-r2*(a*k0*k1-b*k0*k2)/kk-(b*k1-a*k2)/(2*k0)+(a*k0*k2+b*k0*k1)/kk=0;
(r2*c)+(r1*d)+r1*(a*k1+b*k2)/(2*k0)+r1*(a*k0*k1-b*k0*k2)/kk+r2*(b*k1-a*k2)/(2*k0)+r2*(a*k0*k2+b*k0*k1)/kk-(a*k1+b*k2)/(2*k0)-(b*k0*k2-a*k0*k1)/kk=0;
(t1*c)-(t2*d)+t1*(b*k1-a*k2)/(2*k0)+t1*(a*k0*k2+b*k0*k1)/kk-t2*(a*k1+b*k2)/(2*k0)-t2*(a*k0*k1-b*k0*k2)/kk+2=0;
(t2*c)+(t1*d)+t1*(a*k1+b*k2)/(2*k0)+t1*(a*k0*k1-b*k0*k2)/kk+t2*(b*k1-a*k2)/(2*k0)+t2*(a*k0*k2+b*k0*k1)/kk=0;
数值计算
6楼2020-06-28 20:40:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fugitivesk

铁虫 (初入文坛)

7楼2020-06-28 21:15:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

1stOpt正确代码如下,4个方程3个未知数,只能有近似解。
CODE:
Constant  cc = 3*10^8,
         la = cc/10^9,
         k0 = 2*pi/la,
         r1 =0.17532,
         r2 =0.21216,
         t1 =0.77139,
         t2 =-0.3507;

Parameter k1=[30,60],k2=[-2,0],dz=[0.5,0.7];

ConstStr  a=sin(k1*dz)*(exp(-k2*dz)+exp(k2*dz)),
        b=cos(k1*dz)*(exp(-k2*dz)-exp(k2*dz)),
        c=cos(k1*dz)*(exp(-k2*dz)+exp(k2*dz)),
        d=sin(k1*dz)*(exp(-k2*dz)-exp(k2*dz)),
        kk=2*(k1^2+k2^2);
Function
(r1*c)-(r2*d)+r1*(b*k1-a*k2)/(2*k0)+r1*(a*k0*k2+b*k0*k1)/kk-r2*(a*k1+b*k2)/(2*k0)-r2*(a*k0*k1-b*k0*k2)/kk-(b*k1-a*k2)/(2*k0)+(a*k0*k2+b*k0*k1)/kk;
(r2*c)+(r1*d)+r1*(a*k1+b*k2)/(2*k0)+r1*(a*k0*k1-b*k0*k2)/kk+r2*(b*k1-a*k2)/(2*k0)+r2*(a*k0*k2+b*k0*k1)/kk-(a*k1+b*k2)/(2*k0)-(b*k0*k2-a*k0*k1)/kk;
(t1*c)-(t2*d)+t1*(b*k1-a*k2)/(2*k0)+t1*(a*k0*k2+b*k0*k1)/kk-t2*(a*k1+b*k2)/(2*k0)-t2*(a*k0*k1-b*k0*k2)/kk+2;
(t2*c)+(t1*d)+t1*(a*k1+b*k2)/(2*k0)+t1*(a*k0*k1-b*k0*k2)/kk+t2*(b*k1-a*k2)/(2*k0)+t2*(a*k0*k2+b*k0*k1)/kk;

结果:
CODE:
k1: 48.5939431819858
k2: -0.161774549476569
dz: 0.588775305571065

8楼2020-06-28 22:22:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fugitivesk

铁虫 (初入文坛)

引用回帖:
5楼: Originally posted by shikang999 at 2020-06-28 20:26:02
1. 主要使用自己写的MathSword软件进行求解。(PS:附件可以下载MathSword,在打开程序界面最上端选择【高级优化】,在优化模块右键选择上传的附件 solve.vb文件,然后点击求解,就能看到你问题的答案了。)

2. ...

感谢,回头参考参考

发自小木虫Android客户端
9楼2020-06-28 23:01:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fugitivesk

铁虫 (初入文坛)

引用回帖:
8楼: Originally posted by dingd at 2020-06-28 22:22:03
1stOpt正确代码如下,4个方程3个未知数,只能有近似解。

Constant  cc = 3*10^8,
         la = cc/10^9,
         k0 = 2*pi/la,
         r1 =0.17532,
         r2 =0.21216,
         t1 =0.77139,
   ...

感谢

发自小木虫Android客户端
10楼2020-06-28 23:01:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fugitivesk 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 调剂 +9 不逢春 2026-04-05 10/500 2026-04-06 11:58 by 考研学校招点人
[考研] 281求调剂 +8 椰子蘑菇 2026-04-06 8/400 2026-04-06 10:38 by 蓝云思雨
[考研] 一志愿211生物学280分 求调剂 +5 李rien 2026-04-05 5/250 2026-04-06 10:30 by zhyzzh
[考研] 302分 085601求调剂推荐 +11 zyx上岸! 2026-04-05 11/550 2026-04-05 22:13 by dongzh2009
[考研] 327求调剂 +4 拾光任染 2026-04-05 4/200 2026-04-05 20:16 by 南航~万老师
[考研] 288求调剂 +7 没有答案_ 2026-04-05 7/350 2026-04-05 17:01 by yulian1987
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-04-04 5/250 2026-04-05 14:06 by imissbao
[考研] 0832食品科学与工程学硕282调剂 +6 鱼在水中游a 2026-04-02 9/450 2026-04-05 11:45 by flysky1234
[考研] 考研调剂 +11 小sun要好运 2026-04-04 11/550 2026-04-05 08:02 by qlm5820
[考研] 333求调剂 +9 阿科逸 2026-03-31 9/450 2026-04-04 18:25 by macy2011
[考研] 291求调剂 +4 迷蒙木木 2026-04-01 5/250 2026-04-04 15:59 by sihailian3
[考研] 一志愿南昌大学324求调剂 +9 hanamiko 2026-03-30 9/450 2026-04-04 11:04 by 猪会飞
[考研] 材料295 +13 小英11 2026-04-03 14/700 2026-04-04 09:02 by 来看流星雨10
[考研] 322求调剂 +4 FZAC123 2026-04-03 4/200 2026-04-03 20:55 by zhq0425
[考研] 兽医调剂 +3 wh119216 2026-04-02 3/150 2026-04-03 19:34 by zrongyan
[考研] 考研调剂 +8 不爱喝饮料 2026-04-03 8/400 2026-04-03 16:40 by Mistake-J
[考研] 调剂 +3 osbbx 2026-04-02 3/150 2026-04-03 07:47 by cc8418
[考研] 372求调剂 +3 jj涌77 2026-04-02 3/150 2026-04-02 09:57 by olim
[考研] 08生物与医药专硕初试346找调剂 +6 dianeeee 2026-04-01 7/350 2026-04-02 08:23 by guoweigw
[考研] 349求调剂 +6 吃的不少 2026-04-01 6/300 2026-04-01 17:55 by JYD2011
信息提示
请填处理意见