1ṩϺ{nlinFit<\nlinFit>}{nlinFit2<\nlinFit2>}{nlinFit4<\nlinFit4>}{nlinFitAutoMatch<\nlinFitAutoMatch>}{nlinFitDE<\nlinFitDE>}{nlinFitGA<\nlinFitGA>}{nlinFitLM<\nlinFitLM>}{nlinFitMin<\nlinFitMin>}{nlinFitPluralGA<\nlinFitPluralGA>}{nlinFitPluralPSO<\nlinFitPluralPSO>}{nlinFitPSO<\nlinFitPSO>}{nlinFitPSO2<\nlinFitPSO2>}{nlinFitPSO3<\nlinFitPSO3>}

2ṩܸǿϹ䣬ʹ{nlinFitTool<\nlinFitTool>}򿪻ֱ򴰿ѡֵŻڴ򿪵Ĵ͡ѡϡɡ

3ֵŻڡϡ˵
// z=a*sin(b*x+c)/y ʽΪӣ,֪һ֪xyzҪϱabcز
֪ơʾϷ֪ƣѡֵΪx,y,z֮ǰдxyzķűѡҲӦű
֪ݡǴӦxyzݵľоÿһжӦxyzݡע⣬˾ÿһ֪ƶӦ
ơʾϷҪϱƣѡֵΪabc֮ǰдxyzķűѡҲӦű
ʼֵҪϵıabcʼֵΪݣÿһʼֵΪֵΪϱһһӦȻΪʼֵ
ֵҪϵıabcֵΪݣÿһֵΪֵΪϱһһӦȻΪֵ
СֵҪϵıabcСֵΪݣÿһСֵΪֵΪϱһһӦȻΪСֵ
ͷֵϱʽСʱֵЧڲ÷⣬ֵΪ
㷨㷨ƼȲáȺ+ASG㷨ASGһֱȽϸЧԶݶ㷨
⡿Էѡ㷨
ЧӡƼп˱Ⱦ
Ⱥ
ѭѭɿƳⲿֹ
ֹ
ڲ
ʱֱ֧><=ȷţÿһһ
Ŀʽϱʽд z=a*sin(b*x+c)/yȽϸӣԲVB.NET½ǲֵġԶдӦ
DllӿڡѡѡʱĿʽԶòãʱѡӦDllļDllļӿڣ˵
ԶʹVB.NETдӦ

4Dllļӿ
Ϲֱ֧׼CDLLļӿڣӿںCԸʽ

4.1Fun1
ʽdouble Fun1(double *x, double *a)
 x : ʽ洢ֵ֪
 aʽ洢Ҫϱֵ

ӣ
// z=a*sin(b*x+c)/y Ϊ֪xyzabcʽ
double Fun1(double *x, double *a)
{
	double temp;
	temp=a[0]*sin(a[1]*x[0]+a[2])/x[1]-x[2]; // a*sin(b*x+c)/y-z ,עҪzƵʽһ
	return temp;
}


4.2Fun2
ʽdouble Fun2(double xData[][n], double *a , int i)
 xData : ֪飬йnݣÿһζӦ֪
 aʽ洢Ҫϱֵ
 iʾǰ

˵
1֮ṩǿǵЩϱʽʱ()Ӧֵйʱ̴
2ϱӿ֧ʽĺʽ

ӣ
//֪xyzabcdʽµn1ʱ z[n]=a*x[n-1]*sin(y[n]+b)-x[n]/(y[n]+c)*d
double Fun2(double xData[][3], double *a , int i)
{
	double temp;
	if(i>0)
	{
		temp=a[0]*xData[i-1][0]*sin(xData[i][1]+a[1])-xData[i][0]/(xData[i][1]+a[2])*a[3]-xData[i][2];
		return temp;
	}
	else
	{
		return 0;
	}
}

5Dllӿʽʱn֪mδ֪Ҫϣڡ֪ơ"x(n)"nĸʽnΪֵڡơ"a(m)"mĸʽmΪֵ

6ֵŻ,ֵ֧⺯:
sin(x):
cos(x):
tan(x):
cot(x):
asin(x):
acos(x):
atan(x):
acot(x):
sinh(x):˫
cosh(x):˫
tanh(x):˫
coth(x):˫
asinh(x):˫
acosh(x):˫
atanh(x):˫
acoth(x):˫
exp(x):ȡָ
ln(x),log(x):ȡ
sqrt(x):
erf(x):
abs(x):ֵ
gamma(x):٤
NormalDF(x):׼״ֲ̬,normalDF(x) = int[exp(-y^2/2)/sqrt(2*pi) , y , -inf , x]