【matlab国外编程代写】matlab定位算法

更新时间:2023-05-25 15:51:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

matlab定位算法

clc

clear

SamNum=100; %Training Sample No.

TestSamNum=101; %Testing Sample No.

SP=0.6; % a fixed spread constant

ErrorLimit=.9; % goal error

% according to Goal Function to get input and output samples.

rand('state',sum(100*clock))

NoiseVar=0.1;

Noise=NoiseVar*randn(1,SamNum);%Dimension: 1*SamNum

SamIn=8*rand(1,SamNum)-4;

SamOutNoNoise=1.1*(1-SamIn+2*SamIn.^2).*exp(-SamIn.^2/2);

SamOut=SamOutNoNoise+Noise;

%以上是产生的输入输出对应的值

TestSamIn=-4:0.08:4;

Testing Samples as a smooth curve. we need to fix to it.

%以上为测试样本的输入输出的对应的值

figure

hold on

grid

plot(SamIn,SamOut,'r+'); xlabel('Input x');

ylabel('Output y');

% dimension is 1,and the maximum hidden

%hidden layer weights is SamIn's transpose ?? % and this is the output of Hidden layer??

%

VectorsSelected=[];

HiddenUnitOutSelected=[];

ErrHistory=[];

VectorsSelectedFrom=HiddenUnitOut;

dd=sum((SamOut.*SamOut)')'

for k=1:MaxUnitNum

PP=sum(VectorsSelectedFrom.*VectorsSelectedFrom)';

Denominator=dd*PP';

matlab定位算法

[xxx,SelectedNum]=size(PosSelected)

if SelectedNum>0

[lin,xxx]=size(Denominator);

Denominator(:,PosSelected)=ones(lin,1);

end

Angle=((SamOut*VectorsSelectedFrom).^2)./Denominator;

[value,pos]=max(Angle);

PosSelected=[PosSelected pos];

HiddenUnitOutSelected=[HiddenUnitOutSelected;HiddenUnitOut(pos,:)]; HiddenUnitOutEx=[HiddenUnitOutSelected;ones(1,SamNum)];

W2Ex=SamOut*pinv(HiddenUnitOutEx);

W2=W2Ex(:,1:k);

B2=W2Ex(:,k+1);

NNOut=W2*HiddenUnitOutSelected+B2;

SSE=sumsqr(SamOut-NNOut);

ErrHistory=[ErrHistory SSE];

if SSE<ErrorLimit,break,end

end

%Testing

plot(TestSamIn,TestNNOut,'k--');

k

UnitCenters

W2

B2

本文来源:https://www.bwwdw.com/article/d154.html

Top