PDA

查看完整版本 : [MATLAB工具箱] 怎样用一组参数同时拟合两个曲线


zhangholmes
2012-12-10, 20:21
如题,小弟想拟合曲线r1和r2,这两条曲线都用的同一组参数A1 A2 A3 A4 A5 A6 A7 Aw E1 E2 E3 E4 E5 E6 E7 Ew进行非线性最小二乘拟合,请问怎样用matlab实现一组参数同时拟合两个方程?(如果分开拟合的话每个参数必然有两个值)。下面是相关的数据及方程,其中y1和y2分别是r1和r2的实验值,r1和r2的自变量值相同,均为x1.请各位大侠能鼎力相助,最好能给出代码或者计算方法,谢谢
x1=[0.51333,0.36301,0.34194,0.28502,0.26485,0.17771];
y1=[0.50536,0.61684,0.63566,0.68357,0.70947,0.72182];
y2=[2.5363,1.16376,0.75531,0.4164,0.27812,0.1259];
syms A1 A2 A3 A4 A5 A6 A7 Aw E1 E2 E3 E4 E5 E6 E7 Ew x;
k1=A1*exp ((-Aw*exp (-Ew/4098.802)*((0.133+0.173*x)/(0.483-0.346*x))-E1)/4098.802);
k2=A2*exp ((-Aw*exp (-Ew/4098.802)*((0.133+0.173*x)/(0.483-0.346*x))-E2)/4098.802);
k3=A3*exp ((-Aw*exp (-Ew/4098.802)*((0.133+0.173*x)/(0.483-0.346*x))-E3)/4098.802);
k4=A4*exp ((-Aw*exp (-Ew/4098.802)*((0.133+0.173*x)/(0.483-0.346*x))-E4)/4098.802);
k5=A5*exp ((-Aw*exp (-Ew/4098.802)*((0.133+0.173*x)/(0.483-0.346*x))-E5)/4098.802);
k6=A6*exp ((-Aw*exp (-Ew/4098.802)*((0.133+0.173*x)/(0.483-0.346*x))-E6)/4098.802);
k7=A7*exp ((-Aw*exp (-Ew/4098.802)*((0.133+0.173*x)/(0.483-0.346*x))-E7)/4098.802);
r1=-(x*k1*k2*k3*(-k5-k7))/(-(x*k1*k2-k3*(-x*k1-k2-x*k4-k6))*(-k5-k7)-x*k3*k4*(-x*k1+k7));
r2=-(x^2)*k1*k3*k4*k5/((x*k1*k2-k3*(-x*k1-k2-x*k4-k6))*(-k5-k7)-x*k3*k4*(-x*k1+k7));
100 <= A1 <= 10000;
10^11 <= A2 <= 10^14;
10^12 <= A3 <= 10^14;
100 <= A4 <= 10000;
10^12 <= A5 <= 10^14;
10^12 <= A6 <= 10^14;
10^12 <= A7 <= 10^14;
100 <= Aw <= 10000;
0 <= E1 <= 100;
50 <= E2 <= 140;
50 <= E3 <= 140;
0 <= E4 <= 100;
50 <= E5 <= 150;
100 <= E6 <= 150;
0 <= E7 <= 100;
0 <= Ew <= 100;