zhangholmes
2013-03-28, 20:50
小弟想拟合曲线r1和r2并求出参数值,这两条曲线都用的同一组参数k1,k2,k3,k4,k5,k6进行非线性最小二乘拟合,请问怎样用matlab实现一组参数同时拟合两个方程?(如果分开拟合的话每个参数必然有两个值)。下面是相关的数据及方程,其中y1和y2分别是r1和r2的实验值,r1和r2的自变量分别为x1.x2, 请各位大侠能鼎力相助,最好能给出代码或者计算方法,谢谢 (其中所有k均满足0<k1,k2,k3,k4,k5,k6<100)
x1=[0.294618626000000,1.08932212600000,0.832216598000000,1.17662009200000,0.676335091000000,1.70366422000000,1.67606414800000,2.11952112200000];x2=[10.3376575900000,25.2761852100000,16.0236245200000,19.5725079300000,13.0306388900000,30.3467984700000,22.7896542500000,34.6372838900000];y1=[0.0186463620000000,0.0153108230000000,0.0175880640000000,0.0205581730000000,0.0228104580000000,0.0186192320000000,0.0217021560000000,0.0203259500000000];y2=[0.00759763800000000,0.0110371770000000,0.00893193600000000,0.0143098270000000,0.0121695420000000,0.0165047680000000,0.0215378440000000,0.0236220500000000];
r1=k1.*k2.*k3.*k6.*x1./(k3.*k6+k1.*k2.*k6.*x1+k1.*k3.*k6.*x1+k1.*k3.*k4.*k6.*(x1)^2+k3.*x2);
r2=k1.*k3.*k4.*k5.*k6.*(x1)^2./(k3.*k6+k1.*k2.*k6.*x1+k1.*k3.*k6.*x1+k1.*k3.*k4.*k6.*(x1)^2+k3.*x2);
其中所有k的取值范围均为(0,100)
x1=[0.294618626000000,1.08932212600000,0.832216598000000,1.17662009200000,0.676335091000000,1.70366422000000,1.67606414800000,2.11952112200000];x2=[10.3376575900000,25.2761852100000,16.0236245200000,19.5725079300000,13.0306388900000,30.3467984700000,22.7896542500000,34.6372838900000];y1=[0.0186463620000000,0.0153108230000000,0.0175880640000000,0.0205581730000000,0.0228104580000000,0.0186192320000000,0.0217021560000000,0.0203259500000000];y2=[0.00759763800000000,0.0110371770000000,0.00893193600000000,0.0143098270000000,0.0121695420000000,0.0165047680000000,0.0215378440000000,0.0236220500000000];
r1=k1.*k2.*k3.*k6.*x1./(k3.*k6+k1.*k2.*k6.*x1+k1.*k3.*k6.*x1+k1.*k3.*k4.*k6.*(x1)^2+k3.*x2);
r2=k1.*k3.*k4.*k5.*k6.*(x1)^2./(k3.*k6+k1.*k2.*k6.*x1+k1.*k3.*k6.*x1+k1.*k3.*k4.*k6.*(x1)^2+k3.*x2);
其中所有k的取值范围均为(0,100)