?? bs.m
字號(hào):
function B_spline=Bs(u,j,k,umin,umax)
%此程序?yàn)锽樣條神經(jīng)網(wǎng)絡(luò)訓(xùn)練程序
%u為輸入,k為樣條網(wǎng)絡(luò)的基函數(shù)的階數(shù),j為輸入空間劃分的數(shù)目
%lamg為插入點(diǎn)的數(shù)值,a為輸入空間的最小值,b為最大值
%u1,u2為輸入變量的個(gè)數(shù)和樣本總量
% % u=load('E:\u1');
% % %
% % k=3;%%%k為基函數(shù)的階數(shù)
% % j=4;%%$$$$$$$$為插入結(jié)點(diǎn)個(gè)數(shù)
%這個(gè)就是產(chǎn)生分段函數(shù),根據(jù)對(duì)輸入的不同劃分,在不同區(qū)間內(nèi)有不同的函數(shù)
a=umin;
b=umax;
u2=1;
p=k;
interval=(b-a)/j;
%?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
for i=1:(2*p+1)
lamg(i)=0;
end
for i=1:(j+2*p+1)
lamg(i)=a+(i-p)*interval;
end
%??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
for i=1:p;%%%%%%%%%%%%%%%
lamg(i)=a-(p-i)*interval;
end
%取出輸入變量的個(gè)數(shù)及輸入空間的最值
%內(nèi)部結(jié)點(diǎn)的開始下標(biāo)定為p+1,interval為插值間隔
%以上是求取插值lamg的程序
%b樣條網(wǎng)絡(luò)基函數(shù)的求取見下
%??????????????????????????????????????????????????????????????????????????????????????????????????
for l=1:u2 %輸入樣本數(shù)
u(l)=u;
for m=(p+1):(j+p*2) %插入值共j+p個(gè),m只與劃分?jǐn)?shù)有關(guān)
for i=1:p %樣條基函數(shù)的階
if i==1
if ((u(l)>=lamg(m-1))&((u(l)<lamg(m))))
B_s(l,m,1)=1;
else
B_s(l,m,1)=0;
end %結(jié)束階數(shù)為1情況的假設(shè)
else if ((u(l)>=lamg(m-i))&(u(l)<lamg(m)))
B_s(l,m,i)=((u(l)-lamg(m-i))/(lamg(m-1)-lamg(m-i)))*B_s(l,m-1,i-1)+(lamg(m)-u(l))/(lamg(m)-lamg(m-i+1))*B_s(l,m,i-1);
else
B_s(l,m,i)=0;
end
end %結(jié)束if階數(shù)i
end %結(jié)束i循環(huán)
end %結(jié)束m循環(huán)
end %結(jié)束l循環(huán)
B_spline=B_s(:,(p+1):(j+p*2-1),k);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -