:Ŵ㷨Ըз

ʽ:
[a,er,n]=nlinFitPluralGA(f,an,xn,y,x,a0,aMin,aMax,Nbird,LoopSum,Error)
[a,er,n]=nlinFitPluralGA(f,an,xn,y,x,a0,aMin,aMax,Nbird,LoopSum)
[a,er,n]=nlinFitPluralGA(f,an,xn,y,x,a0,aMin,aMax,Nbird)
[a,er,n]=nlinFitPluralGA(f,an,xn,y,x,a0,aMin,aMax)
[a,er,n]=nlinFitPluralGA(f,an,xn,y,x,a0,aMin)
[a,er,n]=nlinFitPluralGA(f,an,xn,y,x,a0)
[a,er,n]=nlinFitPluralGA(f,an,xn,y,x)

f:洢ϵķűʽ,עʽ֧λi
an:Էű洢Ҫϵı,ÿԶŷָ,עв赥λi
xn:Էű洢ʵɼݵı,ÿԶŷָ ,עв赥λi
y:Ϊ12ľ߳,洢ʵɼĵʽұߵĳΪ,1жӦʵ,2жӦ
x:Ϊżľ,洢ӦxnƵ,yǾΪm,xnбΪn,xΪm2nľ,xnеĵ1Ӧxе12ݣxnеĵ2Ӧxе34ݡ˱ежӦʵ,żӦ
a0:洢anʼֵΪ12ľ,anбΪm˾ҲΪmÿһжӦanеֵе1дʵ֣2дֵ֡Ϊһ,ÿֵʼΪֵ
aMin:洢anֵΪ12ľ,anбΪm˾ҲΪmÿһжӦanеֵе1дʵ֣2дֵ֡Ϊһ,ÿֵʼΪֵעʼʱֻʵĬʵֵΪ-512
aMax:洢anֵΪ12ľ,anбΪm˾ҲΪmÿһжӦanеֵе1дʵ֣2дֵ֡Ϊһ,ÿֵʼΪֵעʼʱֻʵĬʵֵΪ512
Nbird:Ⱥ,Ĭ200
LoopSum:ѭ,Ĭ3000
Error:Ʊ,Ĭ1e-12

a:صݱ,رÿһжӦanÿһ,1Ϊʵ,2Ϊ
er:ص
n:صĵֹѭ

ԭ:ڲú{nlinSolve<\nlinSolve>}

:

//һ(x,y,z),֪ʽ z=a*sin(x)+b*cos(y)+c*i ,ϳѸϵabԼʵc
x=rand(3,20,2);
y=rand(3,20,2);
a=[1 2];//a=1+2*i
b=[-3.5 -1];//b=-3.5-i
c=4;
d1=PluralRun("sin(x)");
d2=PluralRun("mul(a,d1)");
d3=PluralRun("cos(y)");
d4=PluralRun("mul(b,d3)");
d5=[0 1];
d6=PluralRun("mul(d5,c)");
d7=PluralRun("add(d2,d4)");
z=PluralRun("add(d7,d6)");
//δֻΪ˲ݶеĴ,ȵõ(x,y,z)

f="a*sin(x)+b*cos(y)+c*i";
an="a,b,c";
xn="x,y"
xy=[x,y];
a0=[10,-5;11,-6;0,0];//ʼʱĬa=10-5*i,b=11-6*i,c=0
amin=[-50,-60;-51,-61;-52,0];//ע޶ӦĹϵ,anеaʵΪ-50,Ϊ-60
amax=[256,100;257,101;255,0];//ΪancΪʵ,cΪ0,ϸaminamaxһ0
[a,er,n]=nlinFitPluralGA(f,an,xn,z,xy,a0,amin,amax,100,3000,1e-16)//سõ½
a =
[ 1.00000000046016    2.00000000127783
 -3.49999999885322   -1.00000000040722
  3.99999999788634    0.00000000000000 ]//a=1.00000000046016+2.00000000127783i,b=-3.49999999885322-1.00000000040722i,c=3.99999999788634
er =
[ 6.7794916498E-17 ]
n =
[ 168.000000000000 ]