Np=2; Nn=4; Nd=3; R=1e7; S=1.5; P=1.0; minR=1e6; maxR=1e8; minS=0.5; maxS=2.0; minP=0.3; maxP=1.5; Niteracao= 10000; Nfilhos= 10; Nsaida= 2*Nfilhos+2; Kmutacao= 0.2; Kconverge= 0.5; Kconverge/= 2; random= rnd(int(time)); erro= 0.0; for (j=1;j<=Np;j++) { y= 1/(R*((3-S)^(-2)-(Principal_A[j]-P)^(-2))); erro= erro + ((Principal_B[j]-y)^2); }; for (j=1;j<=Nn;j++) { y= 1/(R*((3-P)^(-2)-(Nitida_A[j]-S)^(-2))); erro+= ((Nitida_B[j]-y)^2); }; for (j=1;j<=Nd;j++) { y= 1/(R*((3-P)^(-2)-(Difusa_A[j])^(-2))); erro+= ((Difusa_B[j]-y)^2); }; erro= sqrt(erro); erro1= erro; Param_A[Nsaida-1]= R; Param_B[Nsaida-1]= S; Param_C[Nsaida-1]= P; Param_D[Nsaida-1]= erro; type "R= $(R) S= $(S) P= $(P) erro= $(erro) iter= 0"; for (i=1;i<=Nfilhos;i++) { random= rnd(); Param_A[i+Nfilhos]=R*10^((random-0.5)*(log(maxR)-log(minR))); random= rnd(); Param_B[i+Nfilhos]=S+(random-0.5)*(maxS-minS); random= rnd(); Param_C[i+Nfilhos]=P+(random-0.5)*(maxP-minP); }; for (k=1;k<=Niteracao;k++) { Nerro1= 0; for (i=1;i<=Nfilhos;i++) { Param_A[i]=Param_A[i+Nfilhos]; Param_B[i]=Param_B[i+Nfilhos]; Param_C[i]=Param_C[i+Nfilhos]; Param_D[i]=0.0; for (j=1;j<=Np;j++) { y= 1/(Param_A[i]*((3-Param_B[i])^(-2)-(Principal_A[j]-Param_C[i])^(-2))); Param_D[i]+=((Principal_B[j]-y)^2); }; for (j=1;j<=Nn;j++) { y= 1/(Param_A[i]*((3-Param_C[i])^(-2)-(Nitida_A[j]-Param_B[i])^(-2))); Param_D[i]+=((Nitida_B[j]-y)^2); }; for (j=1;j<=Nd;j++) { y= 1/(Param_A[i]*((3-Param_C[i])^(-2)-(Difusa_A[j])^(-2))); Param_D[i]+=((Difusa_B[j]-y)^2); }; Param_D[i]=sqrt(Param_D[i]); if(Param_D[i] < erro1) { erro1= Param_D[i]; Nerro1= i; }; }; if(Nerro1 > 0) { R= Param_A[Nerro1]; S= Param_B[Nerro1]; P= Param_C[Nerro1]; erro= Param_D[Nerro1]; erro1= erro; Param_A[Nsaida]= R; Param_B[Nsaida]= S; Param_C[Nsaida]= P; Param_D[Nsaida]= erro; Nsaida+= 1; type "R= $(R) S= $(S) P= $(P) erro= $(erro) iter= $(k)"; }; for (i=1;i<=Nfilhos;i++) { random= int(10*rnd()+1); random1=int(10*rnd()+1); if(random == random1) random1= random+1; if(random1 == Nfilhos+1) random1= 1; Param_A[i+Nfilhos]=R*10^(Kconverge*(log(Param_A[random])-log(Param_A[random1]))); Param_B[i+Nfilhos]=S+Kconverge*(Param_B[random]-Param_B[random1]); Param_C[i+Nfilhos]=P+Kconverge*(Param_C[random]-Param_C[random1]); random= rnd(); if(random < Kmutacao) { random= rnd(); Param_A[i+Nfilhos]=R*10^((random-0.5)*(log(maxR)-log(minR))); }; random= rnd(); if(random < Kmutacao) { random= rnd(); Param_B[i+Nfilhos]=S+(random-0.5)*(maxS-minS); }; random= rnd(); if(random < Kmutacao) { random= rnd(); Param_C[i+Nfilhos]=P+(random-0.5)*(maxP-minP); }; }; for (j=1;j<=Np;j++) { Principal_C[j]= 1/(R*((3-S)^(-2)-(Principal_A[j]-P)^(-2))); }; for (j=1;j<=Nn;j++) { Nitida_C[j]= 1/(R*((3-P)^(-2)-(Nitida_A[j]-S)^(-2))); }; for (j=1;j<=Nd;j++) { Difusa_C[j]= 1/(R*((3-P)^(-2)-(Difusa_A[j])^(-2))); }; }; "R= "1.071975E7" S= "1.39734" P= "0.908357" erro= "2.473674E-8 "R= "1.062854E7" S= "1.404291" P= "0.91575" erro= "2.477756E-8; "R= "1.104059E7" S= "1.376471" P= "0.88239" erro= "2.48698E-8 "R= "1.065509E7" S= "1.402497" P= "0.91345" erro= "2.4768E-8 "R= "1.046567E7" S= "1.414883" P= "0.929307" erro= "2.491274E-8; R= 1.046567E7 S= 1.414883 P= 0.929307 erro= 2.491274E-8 iter= 9.845E3