24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2218  |  回复: 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

新虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
独孤神宇: 金币+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的回帖
查看全部 11 个回答

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的回帖
信息提示
请填处理意见