介绍一种能以人已精度逼近任意函数的方法:神经网络
1.BP网络
>> a=1:10;
b=rand(1,10);
net=newff(minmax(a),[6,1],{'tansig','purelin'},'trainlm');
>> net=train(net,a,b);
TRAINLM, Epoch 0/100, MSE 2.4582/0, Gradient 28.1399/1e-010
TRAINLM, Epoch 25/100, MSE 0.0100718/0, Gradient 0.0645639/1e-010
TRAINLM, Epoch 50/100, MSE 0.00279072/0, Gradient 0.0371558/1e-010
TRAINLM, Epoch 75/100, MSE 0.000259069/0, Gradient 0.000950231/1e-010
TRAINLM, Epoch 100/100, MSE 0.000246122/0, Gradient 0.00282375/1e-010
TRAINLM, Maximum epoch reached, performance goal was not met.
>> b1=sim(net,a);%预测
>> b-b1;%误差
ans = Columns 1 through 7
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000
Columns 8 through 10
0.0351 -0.0351 0.0003
2.径向基函数网络
>> net=newrb(a,b,1);
NEWRB, neurons = 0, SSE = 0.587343
>> b2=sim(net,a);%预测
>> b-b2
ans = Columns 1 through 7
0.0891 0.0611 -0.2402 0.2367 -0.1718 -0.1205 -0.0118
Columns 8 through 10
0.2286 -0.1139 0.0427
3.零误差径向基函数网络
>> net=newrbe(a,b,1);
>> b2=sim(net,a);%预测
>> b-b2
ans = 1.0e-015 * Columns 1 through 7
-0.1110 0.3331 0.1665 -0.6661 -0.1249 -0.0555 0.2220
Columns 8 through 10 0 -0.2776 0.3331