⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jacobi_pinv_1116.m

📁 用数值方法来求解雅克比矩阵的迭代过程
💻 M
字号:
%将输出格式定为long
format long

%清除command window 中的所有字
clc;

%清除变量内存
clear;

%在区间[-1.0,1.0]内以0.01的间隔采样
xi=-1.0:0.01:1.0;

%转置共扼
xi=xi';

%仿真函数
% yi=1./(xi.^2+1)+log10(xi+2)+cos(4*xi);
% yi=cos(4*xi);
yi=sin(4*xi);

%计算yi的长度
numSMP=length(yi);

%隐层神经元与输出层神经元之间的权重个数
numW=8;

%通过隐层神经元的激励函数计算矩阵值
X(:,1)=1+0*xi;
X(:,2)=2*xi;
X(:,3)=4*xi.^2-1;
X(:,4)=8*xi.^3-4*xi;
X(:,5)=16*xi.^4-12*xi.^2+1;
X(:,6)=32*xi.^5-32*xi.^3+6*xi;
X(:,7)=64*xi.^6-80*xi.^4+24*xi.^2-1;
X(:,8)=128*xi.^7-192*xi.^5+80*xi.^3-8*xi;
% X(:,9)=256*xi.^8-448*xi.^6+240*xi.^4-40*xi.^2+1;
% X(:,10)=512*xi.^9-1024*xi.^7+672*xi.^5-160*xi.^3+10*xi;

xiM=X;

%计算参数eta
eta=1.2/trace(xiM'*xiM);

%创建一个 numW×1 的零矩阵
W=zeros(numW,1);

%把码表归零,开始计时
tic

%权值修正
W=pinv(xiM)*yi;  

%计算神经网络的误差
errall=0.5*[norm(xiM*W-yi)]^2

%把码表停止,并输出计时的结果
toc

%在command window 中显示时间
time=toc

%计算均差
errall_div_numSMP=errall/numSMP

%计算2倍均差
double_errall_div_numSMP=2*errall/numSMP

%在command window 中显示权值信息
W


%在区间[-0.995,1.005]内以0.01的间隔采样
xitest=-0.995:0.01:1.005;

%转置共扼
xitest=xitest';

%仿真函数
% yitest=1./(xitest.^2+1)+log10(xitest+2)+cos(4*xitest);
% yitest=cos(4*xitest);
yitest=sin(4*xitest);

Xtest(:,1)=1+0*xitest;
Xtest(:,2)=2*xitest;
Xtest(:,3)=4*xitest.^2-1;
Xtest(:,4)=8*xitest.^3-4*xitest;
Xtest(:,5)=16*xitest.^4-12*xitest.^2+1;
Xtest(:,6)=32*xitest.^5-32*xitest.^3+6*xitest;
Xtest(:,7)=64*xitest.^6-80*xitest.^4+24*xitest.^2-1;
Xtest(:,8)=128*xitest.^7-192*xitest.^5+80*xitest.^3-8*xitest;
% Xtest(:,9)=256*xitest.^8-448*xitest.^6+240*xitest.^4-40*xitest.^2+1;
% Xtest(:,10)=512*xitest.^9-1024*xitest.^7+672*xitest.^5-160*xitest.^3+10*xitest;

%计算并显示神经网络的校验误差
errall_test=0.5*[norm(Xtest*W-yitest)]^2

%计算并显示较验均差
errall_test_div_numSMP=(errall_test)/numSMP

%计算并显示2倍较验均差
double_errall_test_div_numSMP=(2*(errall_test))/numSMP


i=1:numSMP;
figure('Name','trained points','NumberTitle','off')
plot(xi,yi,'-',xi,xiM*W,'--')


% i=1:numSMP;
% figure('Name','untrained points','NumberTitle','off')
% plot(i,yitest,'-',i,Xtest*W,'--')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -