求助!三个未知数 四个方程用1stopt(Anto2Fit)约束优化
计算小白,新来的没啥金币
用的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);

22.JPG@月只蓝
返回小木虫查看更多
京公网安备 11010802022153号
大神能不能请教一个问题,就以MathSword中的LM算法,在给定范围内,如果误差显示很大,会不会是算法本身对我这些方程不适用呢?还是输入的r1,r2,t1,t2参数的问题,这两个哪个问题哪个更大一点?
这几个新的参数,误差能达到1.04
r1 = 0.84533854,
r2 = -0.44834762,
t1 = -0.10569942,
t2 = -0.1866214;
Parameter k1[0,10000],k2[-2,0],dz[0,2];
,