1stopt吧 关注:354贴子:2,295
  • 0回复贴,共1

求助大神,多参数带约束非线性拟合。代码错误

只看楼主收藏回复

代码如下,需要求出a1,b1,c1,d1,a2,b2,c2,d2,a3,c3 这10个参数,其中函数中下面三行是约束,望大佬指点
Title "Nonlinear Fit"
Constant F=96485.334,R=8.3145,b3=0,d3=0;
VarConstant T=[773.15,973.15,1073.15];
Parameters a1[0,1e-4],b1,c1,d1,a2[0,1e-4],b2,c2,d2,a3[0,1e-4],c3;
Variables y,x1,x2,x3,x4;
Function y=(F^2)*x1*(a1*(1+b1*x4))*exp(-(c1+d1*x4)/(R*T))/(R*T)+(F^2)*x2*(a2*(1+b2*x4))*exp(-(c2+d2*x4)/(R*T))/(R*T)+(4*F^2)*x3*(a3*(1+b3*x4))*exp(-(c3+d3*x4)/(R*T))/(R*T);
a1*(1+b1*x4)*exp-(c1+d1*x4)/(R*T)>0;
a2*(1+b2*x4)*exp-(c2+d2*x4)/(R*T)>0;
a3*(1+b3*x4)*exp-(c3+d3*x4)/(R*T)>0;
RowData;
119685.18,124330.77,127828.002,130751.07,132786.77;
4403.185,4851.994,5364.097,5588.501,5715.09;
214.3,185.53,151.007,116.483,87.71;
789.697,501.999,312.118,185.531,151.007;
0.0274,0.0174,0.0108,0.0064,0.0052;
RowData;
50940.98,64564.546,69523.315,80276.015,84869.4,94160.57,97083.63,103764.92,106061.615,106374.8;
983.51,1362.565,1621.014,2160.885,2448.05,2993.664,3246.37,3694.35,3883.88,4205.5;
2034.532,1460.2,1236.21,914.587,822.694,627.422,564.246,472.353,437.893,409.176;
3441.642,2930.49,2706.499,2321.697,2068.992,1712.91,1586.554,1299.39,1173.04,1012.223;
0.119,0.1015,0.09375,0.0804,0.0717,0.05934,0.055,0.045,0.0406,0.0351;
RowData;
25155.38,37004.228,41649.812,53864.044,58509.628,70097.488,74429.887,83460.067,88105.65;
593.555,791.372,940.732,1350.516,1509.876,2141.63,2397.74,2966.884,3251.455;
4071.022,3092.095,2682.312,1919.659,1669.236,1225.304,1065.944,815.521,752.915;
4674.315,4071.022,3757.993,3188.85,2932.735,2460.346,2204.231,1828.596,1669.236;
0.162,0.141,0.13,0.1105,0.1016,0.085,0.0764,0.063,0.0578;
运行后错误如下:
error: missing operator or semicolon
error: missing operator or semicolon
error: missing operator or semicolon
error: incompatible types: 'double' and 'boolean'
D:\Program Files\1stOpt 8.
Incompatible types: 'Double' and 'Boolean'
Compile failed, check your program codes please!


IP属地:陕西1楼2021-02-26 10:51回复