变量未在OriginPro数据拟合中声明错误

时间:2016-03-15 14:44:34

标签: c++

我正在尝试在程序OriginPro中构建一个函数,但是在编译脚本时我得到一个未声明错误的变量。该脚本应该使用纽曼迭代法求解具有系数a,b,c和d的三次方程,然后使用该解决方案优化参数K1,K2,E0,E1,E2和Gt(不属于在重新使用优化参数再次求解三次方程之前,脚本,OriginPro执行此操作。我在编译脚本时得到错误“变量”为“未声明”。我在这里粘贴了下面的脚本。任何帮助将不胜感激。

//----------------------------------------------------------
// 
void _nlsfNMR2to1Iterative(
// Fit Parameter(s):
double K1, double K2, double E0, double E1, double E2, double Gt,
// Independent Variable(s):
double x,
// Dependent Variable(s):
double& y)
{
// Beginning of editable part
a=K1*K2;
b=K1+2*K2*K1*x-K1*K2*Gt;
c=1+K1*x-K1*Gt;
d=-Gt;

for(G=x, step=1; abs(step)>1e-15; G=G-step){
    step=(a*G*G*G+b*G*G+c*G+d)/(3*a*G*G+2*b*G+c);};

y=E0*G+Ht*(E1*K1*G+E2*K1*K2*G*G)/(1+K1*G+K1*K2*G*G)
// End of editable part
}

1 个答案:

答案 0 :(得分:0)

您需要在abcd的声明中添加类型。

变化:

a=K1*K2;
b=K1+2*K2*K1*x-K1*K2*Gt;
c=1+K1*x-K1*Gt;
d=-Gt;

double a=K1*K2;
double b=K1+2*K2*K1*x-K1*K2*Gt;
double c=1+K1*x-K1*Gt;
double d=-Gt;