Matlab数学建模算法之小波神经网络详解

news2024/11/29 22:54:11

🔗 运行环境:Matlab

🚩 撰写作者:左手の明天

🥇 精选专栏:《python》

🔥  推荐专栏:《算法研究》

🔐#### 防伪水印——左手の明天 ####🔐

💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗

💗今天分享matlab数学建模算法——小波分析💗

📆  最近更新:2023 年 12 月 05 日,左手の明天的第 302 篇原创博客

📚 更新于专栏:matlab

🔐#### 防伪水印——左手の明天 ####🔐


一、小波神经网络

小波神经网络(Wavelet Neural Network,简称WNN)是基于小波变换理论构造而成,其原理与反向传播神经网络(BPNN)较为接近。最主要的特征是它的隐含层神经元激活函数为小波基函数,这一特性使其充分利用了小波变换的局部化性质和神经网络的大规模数据并行处理、自学习能力,因而具有较强的逼近能力和较快的收敛速度。

小波神经网络的结构图如下图所示:


二、小波分析

小波分析是一种强大的数学工具,它在信号处理、图像处理、量子力学等领域有着广泛的应用。小波变换是一种将信号分解成不同尺度的成分,以便更好地理解信号的特性的方法。

1、小波变换的定义

小波变换是一种信号分析方法,它可以将信号分解成不同尺度的成分。小波变换的基本思想是将信号投影到一组小波函数上,这组小波函数构成了小波基。小波基的特性是它们在时间和频率上都具有良好的局部性。这意味着小波基可以很好地捕捉信号中的局部特征,无论在高频还是低频部分。

小波变换的定义基于傅里叶变换和伸缩平移运算。它通过将信号与一组小波函数进行内积运算,得到信号在不同尺度下的投影。这些投影可以理解为信号在不同尺度下的细节和概貌。

2、小波变换的性质

小波变换具有一些重要的性质,包括:

(1) 适应性和多分辨率特性:小波变换可以适应不同尺度的信号,并能够同时处理高频和低频部分。这使得小波变换具有多分辨率特性,可以更好地分析信号的细节和概貌。

(2) 方向性和时间-频率局部性:小波基具有方向性和时间-频率局部性,这使得小波变换在处理信号时具有很好的局部性。它可以捕捉信号中的突变和边缘等局部特征,并提供关于这些特征的更多信息。

(3) 冗余性和压缩性:小波变换具有冗余性,这意味着它可以将信号分解成多个层次,每个层次都包含了信号的不同方面的信息。这种冗余性使得小波变换具有很好的压缩性,可以将信号压缩成更小的数据量。

3、小波变换的实现

小波变换的实现通常分为两步:首先是选择合适的小波基,然后是对信号进行小波分解和重构。选择合适的小波基需要考虑信号的特性和应用场景。常用的有小波基包括Daubechies小波基、Haar小波基、Morlet小波基等。

小波分解是将信号分解成多个层次的过程,每个层次都包含了信号的不同方面的信息。常用的有小波分解算法包括二进小波分解、多尺度小波分解等。重构是小波变换的逆过程,它可以根据小波分解的结果将信号恢复成原始形式。

4、小波变换的数学模型

小波变换的数学模型可以通过连续小波变换和离散小波变换表示。连续小波变换是对连续信号进行小波变换,可以用积分来表示。离散小波变换是对离散信号进行小波变换,可以用矩阵运算表示。

4.1 连续小波变换

连续小波变换的数学模型可以表示为:

W(a, b) = ∫f(t)ψ*[ (t-b)/a ] dt

其中,W(a, b)表示小波系数,f(t)表示原始信号,ψ(t)表示小波基函数,a和b分别表示尺度参数和平移参数。

4.2 离散小波变换

离散小波变换的数学模型可以表示为:

W(n, k) = ∑f(m)ψ*[ (m-k)/2^n ] 

其中,W(n, k)表示小波系数,f(m)表示原始信号,ψ(m)表示离散小波基函数,n表示尺度参数,k表示平移参数。

5、matlab实现小波变换

在MATLAB中进行小波分析的步骤如下:

  1. 准备数据:将待分析的信号数据准备好,可以是一个向量或一个矩阵。
  2. 选择小波类型:根据需要选择合适的小波类型,例如Daubechies小波、Haar小波、Morlet小波等。
  3. 进行小波分解:使用MATLAB中的小波分析函数,例如dwt()wavedec2(),对信号数据进行小波分解。这将会将信号分解成多个层次,每个层次都包含了信号的不同方面的信息。
  4. 分析小波系数:对分解后得到的小波系数进行分析,例如可以观察近似系数和细节系数的变化情况,从而得到信号在不同层次上的特征。
  5. 重构信号:如果需要,可以使用idwt()waverec2()函数对信号进行重构,得到原始信号。
  6. 计算相关统计量和特征量:根据需要,可以计算相关统计量和特征量,例如均方差、峰值等,以进一步分析信号的特征。

需要注意的是,在进行小波分析前,需要了解小波分析的基本原理和性质,以便更好地选择合适的小波类型和分解方式,以及正确地解释分析结果。

在MATLAB中进行小波分析,我们首先需要了解几个关键函数:

  1. dwt(): 这是进行一维小波单层分解的函数,它采用小波名称作为参数,返回近似系数和细节系数。
  2. wavdec(): 这是进行一维小波多层分解的函数,它可以将信号分解成多个层次。
  3. idwt(): 这是进行小波重构的函数,它采用近似系数和细节系数作为参数,返回重构后的信号。

下面是一个简单的例子,说明如何在MATLAB中使用小波分析:

% 创建信号
x = randn(1,100);
% 选择小波类型
wname = 'db1';
% 进行一维小波分解
[cA,cD] = dwt(x,wname);
% 进行小波重构
X = idwt(cA,cD,wname);

在这个例子中,首先创建了一个随机信号x。然后,选择了Daubechies小波('db1')进行小波分解。分解后,我们得到了近似系数cA和细节系数cD。最后,我们使用idwt()函数进行了小波重构,得到了重构后的信号X

注意:在进行小波重构时,必须使用与分解时相同的小波类型。

二维小波分析在图像处理中特别有用。在MATLAB中,你可以使用wavedec2()函数进行二维小波分解,使用waverec2()函数进行二维小波重构。二维小波分解和重构通常用于图像压缩、去噪等方面。


三、权值训练

小波神经网络(Wavelet Neural Network,简称WNN)是一种结合了小波变换和神经网络的复合体。它的权值训练一般通过以下步骤进行:

  1. 网络初始化:首先,对小波神经网络进行初始化,包括确定网络的结构、小波基函数的类型和参数、权值和阈值等。
  2. 输入数据学习:将已知的输入数据通过小波变换进行分解和重构,通过调整权值和阈值使得网络的输出尽可能接近目标输出。
  3. 误差反向传播:在每个训练周期结束后,计算网络输出和目标输出的误差,并将误差反向传播到网络中,根据误差调整权值和阈值。
  4. 权值更新:根据反向传播的误差,对网络的权值进行更新。一般采用梯度下降法或其他优化算法来更新权值。
  5. 重复学习:重复步骤2-4,直到网络的输出与目标输出之间的误差满足要求,或者达到预设的学习次数。

小波神经网络的权值训练过程与反向传播神经网络类似,都是通过不断调整权值和阈值来最小化网络输出与目标输出之间的误差。但是,小波神经网络的小波基函数具有更好的局部化性质和时频分析能力,因此可以更好地处理具有复杂特征的数据。


四、特征分析

小波神经网络利用小波基函数的性质进行特征分析主要表现在以下几个方面:

  1. 多尺度分析:小波神经网络可以通过多尺度分析,在不同尺度下提取信号的特征。小波基函数可以将信号分解成多个尺度的成分,每个尺度下的成分都包含了信号的不同频率信息和细节信息。
  2. 局部化分析:小波基函数具有局部化性质,可以捕捉信号的局部特征。通过小波神经网络对信号进行分解和重构,可以更好地提取信号中的局部特征,对于信号分类、识别等任务有很大的帮助。
  3. 方向选择性:小波基函数在时频域上具有方向选择性,可以更好地适应信号的变化。通过小波神经网络对信号进行分解和重构,可以更好地适应信号的变化,提高信号处理的准确性和鲁棒性。
  4. 非线性映射:小波基函数具有非线性映射的能力,可以将输入信号映射到高维空间中。通过小波神经网络对输入信号进行学习和映射,可以更好地表示输入信号的特征,提高分类和识别的准确性。

总之,小波神经网络利用小波基函数的性质进行特征分析,可以更好地提取信号的特征,提高信号处理的准确性和鲁棒性。


五、小波基函数

小波基函数是小波分析的核心组成部分,选择合适的小波基函数对于信号处理、图像处理、数值分析等领域的应用非常重要。在选择小波基函数时,需要考虑以下几个因素:

5.1 支撑长度(Support Length)

小波基函数的支撑长度是指在一定尺度下,小波基函数的非零部分所覆盖的信号长度。一般来说,支撑长度越长,小波基函数就越能捕捉到信号中的细节和特征,但同时也会增加计算的复杂性和内存消耗。因此,在选择小波基函数时,需要根据应用场景和硬件资源进行权衡。

常见的支撑长度有小波基函数的名称和对应的支撑长度(在MATLAB环境下):

  • Daubechies 2 (db2): 3
  • Daubechies 3 (db3): 4
  • Daubechies 4 (db4): 5
  • Daubechies 5 (db5): 6
  • Daubechies 6 (db6): 7
  • Daubechies 8 (db8): 9
  • Daubechies 12 (db12): 13
  • Daubechies 14 (db14): 15

5.2 紧支撑(Tight Support)

紧支撑是指小波基函数在时间和频率域中的局部化性质,即在小波变换的过程中,只有靠近输入信号的位置才会产生非零系数。选择具有紧支撑的小波基函数可以减少计算量和内存消耗,同时提高信号处理的效率和准确性。

在选择小波基函数时,需要考虑其紧支撑性质。一般来说,Daubechies系列小波基函数具有较好的紧支撑性质。此外,还可以根据应用场景和问题特点来选择具有合适支撑长度和紧支撑的小波基函数。例如,当处理信号的频率成分较为复杂时,可以选择支撑长度较长的小波基函数;当处理信号的时域特征较为重要时,可以选择具有较好紧支撑性质的小波基函数。

总之,选择合适的小波基函数需要考虑支撑长度和紧支撑等因素,同时结合具体的应用场景和问题特点进行选择。在MATLAB环境下,可以使用wfilters函数来查看不同小波基函数的性质和特点,以便选择合适的小波基函数进行应用。


六、小波神经网络实现过程

  • 步骤1:数据准备

首先,我们需要准备用于训练和测试的数据集。数据集应包含输入样本和对应的目标输出。确保数据集经过预处理和归一化处理,便于网络的训练和学习。

  • 步骤2:网络建立

使用MATLAB的神经网络工具箱,我们可以方便地建立小波神经网络。首先,定义网络的拓扑结构和参数配置,包括输入层、隐藏层和输出层的节点数,以及学习率、最大迭代次数等参数。

  • 步骤3:训练网络

使用训练数据集对小波神经网络进行训练。在MATLAB中,可以使用train函数来训练神经网络。通过设置训练选项,可以控制训练过程的细节和收敛性。

  • 步骤4:测试网络

使用测试数据集对训练好的小波神经网络进行测试,以评估其性能和泛化能力。在MATLAB中,可以使用sim函数来模拟网络的响应。通过比较网络的输出和目标输出,可以计算误差和评估网络的性能。

  • 步骤5:应用网络

使用训练好的小波神经网络对新的输入数据进行威胁评估。将新的输入数据输入到网络的输入层,通过隐藏层和输出层的计算,得到威胁评估结果。

以上是一个简单的小波神经网络实现过程。在实际应用中,可能需要根据具体情况进行适当的调整和优化。同时,也可以考虑使用其他工具或框架来实现小波神经网络,如MATLAB的Deep Learning Toolbox、Python的PyWavelets和Scikit-Learn等。


七、MATLAB实现的小波神经网络

以下是一个使用MATLAB实现的小波神经网络代码示例:

% 加载数据集
load iris_dataset
 
% 定义小波神经网络结构
net = newff(input, target, [10 1], {'logsig', 'purelin'}, 'trainlm');
 
% 设置训练参数
net.trainParam.epochs = 100;
net.trainParam.goal = 1e-5;
net.trainParam.show = 10;
net.trainParam.lr = 0.01;
net.trainParam.mc = 0.9;
 
% 训练网络
[net, tr] = train(net, input, target);
 
% 测试网络性能
output = net(input);
perf = perform(net, target, output);

在上述代码中,首先加载了鸢尾花数据集,并定义了一个具有10个隐层节点和1个输出节点的小波神经网络。使用了logsig激活函数作为隐层激活函数,并使用purelin激活函数作为输出层激活函数。然后,设置了网络的训练参数,包括最大迭代次数、目标误差、显示间隔、学习率和动量等。最后,使用train函数训练了网络,并使用perform函数评估了网络的性能。

function main()
clc;clear all;close all;
%用Mexihat函数作为样本输入和输出
x=0:0.03:3; %样本输入值
c=2/(sqrt(3).*pi.^(1/4));
d=1/sqrt(2);
u=x/2-1;
targ=d.*c.*exp(-u.^2/2).*(1-u.^2);  % 目标函数的样本输出值
eta=0.02;aerfa=0.735; %赋予网络学习速率和动量因子初始值
%初始化输出层和隐层的连接权wjh和隐层和输出层的连接权.
%假设小波函数节点数为H,样本数为P,输出节点数为J,输入节点数为I.
H=15;P=2;I=length(x);J=length(targ);
b=rand(H,1);a=rand(H,1); %初始化小波参数
whi=rand(I,H);wjh=rand(H,J); %初始化权系数;
b1=rand(H,1);b2=rand(J,1);%阈值初始化;
p=0;
Err_NetOut=[];%保存的误差;
flag=1;count=0;
while flag>0
flag=0;
count=count+1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xhp1=0;
for h=1:H
    for i=1:I
        xhp1=xhp1+whi(i,h)*x(i);
    end
ixhp(h)=xhp1+b1(h);
xhp1=0;
end
for h=1:H
oxhp(h)=fai((ixhp(h)-b(h))/a(h));
end
ixjp1=0;
for j=1:J
  for h=1:H
      ixjp1=ixjp1+wjh(h,j)*oxhp(h);
  end
ixjp(j)=ixjp1+b2(j);
ixjp1=0;
end
for i=1:J
oxjp(i)=fnn(ixjp(i));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
wuchayy=1/2*sumsqr(oxjp-targ);
Err_NetOut=[Err_NetOut wuchayy];%保存每次的误差;
%求解小波网络运用BP算法,各参数每次学习的调整量
for j=1:J
detaj(j)=-(oxjp(j)-targ(j))*oxjp(j)*(1-oxjp(j));
end
for j=1:J
  for h=1:H
      detawjh(h,j)=eta*detaj(j)*oxhp(h);
  end
end
detab2=eta*detaj;
sum=0;
for h=1:H
  for j=1:J
      sum=detaj(j)*wjh(h,j)*diffai((ixhp(h)-b(h))/a(h))/a(h)+sum;
  end
detah(h)=sum;
sum=0;
end
for h=1:H
  for i=1:I
      detawhi(i,h)=eta*detah(h)*x(i);
  end
end
detab1=eta*detah;
detab=-eta*detah;
for h=1:H
detaa(h)=-eta*detah(h)*((ixhp(h)-b(h))/a(h));
end
%引入动量因子aerfa,加快收敛速度和阻碍陷入局部极小值.
wjh=wjh+(1+aerfa)*detawjh;
whi=whi+(1+aerfa)*detawhi;
a=a+(1+aerfa)*detaa';
b=b+(1+aerfa)*detab';
b1=b1+(1+aerfa)*detab1';
b2=b2+(1+aerfa)*detab2';
%本算法采用的是样本逐个处理而不是数据批处理
p=p+1;
if p~=P
flag=flag+1;
else
if Err_NetOut(end)>0.008
flag=flag+1;
else
figure;
plot(Err_NetOut);
xlabel('网络学习的次数');ylabel('网络输出的误差');
title('网络学习误差曲线','fontsize',20,'color',[0 1 1],'fontname','隶书');
end
end
if count>6000
figure(1);
subplot(1,2,1)
plot(Err_NetOut,'color','b','linestyle','-','linewidth',2.2,...
'marker','^','markersize',3.5);
xlabel('网络学习的次数');ylabel('网络输出的误差');
title('误差曲线','fontsize',20,'color',[1 1 1],'fontname','隶书');
subplot(1,2,2)
handle1=plot(x,targ,'color','r','linestyle','--','linewidth',2.2,...
'marker','p','markersize',3.5);
hold on
handle1=plot(x,oxjp,'color','g','linestyle','-.','linewidth',2.2,...
    'marker','d','markersize',3.5);
xlabel('样本输入值');ylabel('样本目标值与网络输出值');
title('目标值与网络输出值比较','fontsize',20,'color',[1 1 1],'fontname','隶书');
legend('样本目标值','网络仿真值');
break;
end
end
function y3=diffai(x)  %子程序
y3=-1.75*sin(1.75*x).*exp(-x.^2/2)-cos(1.75*x).*exp(-x.^2/2).*x;
function yl=fai(x)  %子程序
yl=cos(1.75.*x).*exp(-x.^2/2);
function y2=fnn(x)  %子程序
y2=1/(1+exp(-x));

八、小波神经网络应用场景

小波神经网络在许多应用场景上表现较好,以下是其中几个例子:

  1. 信号处理:小波神经网络可以用于信号压缩、分类、识别与诊断,去污等。在医学成像方面,可以减少B超、CT、核磁共振成像的时间,提高解析度等。
  2. 图像处理:小波神经网络在图像处理方面也有广泛的应用,包括图像压缩、分类、识别、去噪等。
  3. 信号分析:小波神经网络可以用于边界的处理与滤波、时频分析、信噪分离与提取弱信号、求分形指数、信号的识别与诊断以及多尺度边缘侦测等。
  4. 工程技术:小波神经网络在工程技术等方面也有应用,包括电脑视觉、电脑图形学、曲线设计、湍流、远端宇宙的研究与生物医学方面。

此外,小波神经网络还可以应用于模式识别、非线性映射、优化设计等领域。总之,小波神经网络具有广泛的应用前景,可以在不同领域中发挥其优势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1299810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PHP使用mkcert本地开发生成HTTPS证书 PhpEnv集成环境

PHP使用mkcert本地开发生成HTTPS证书 PhpEnv集成环境 前言一、介绍 mkcert二、安装/使用 mkcert1. 安装2. 使用 总结 前言 本地开发时有些功能只有在 https 证书的情况下才能使用, 例如一些 Web API 一、介绍 mkcert Github地址 mkcert 是一个制作本地可信开发证书的简单工具。…

基于以太坊的智能合约开发Solidity(事件日志篇)

//声明版本号(程序中的版本号要和编译器版本号一致) pragma solidity ^0.5.17; //合约 contract EventTest {//状态变量uint public Variable;//构造函数constructor() public{Variable 100;}event ValueChanged(uint newValue); //事件声明event Log(…

无人零售店,凭借黑科技引领,它的前景如何?

无人零售店,凭借黑科技引领,它的前景如何? 近年来,无人新零售行业快速兴起,引起了广泛的关注和兴趣。尤其是在疫情之后,人们才真正认识到了无人零售的概念。如今,无人零售行业正在以直线的方式高…

U2 文法和语言

文章目录 一、预备知识1、字母表和符号串2、符号串形式定义3、符号串相等4、延申 二、文法1、 一些概念2、文法的定义3、推导的形式定义4、规范推导5、语言的形式定义6、递归文法7、BNF范式总结 三、短语、简单短语和句柄四、语法树(推导树)1、概念2、语法树推导--句型的推导3、…

打造Github首页的动态飞线效果

一、导语 Github首页的地球动态飞线,大家都比较熟悉吧 二、分析 由大量随机的3点构造出贝塞尔曲线,然后开始从起点到终点的飞行后,然后再从起点到终点的消失,就此完成整个过程 三、基础代码 createCurve(startPoint, endPoint…

爬虫解析-jsonpath (六)

jsonpath只能解析本地文件 jsonpath的使用: obj json.load(open(.json文件,r,encodingutf-8))place_name jsonpath.jsonpath(obj, json语法) 目录 1.安装jsonpath 2.Xpath和jsonpath的语法对比 练习:使用jsonpath解析JSON文件 3.使用jsonpath抓取…

论文代码阅读:TGN模型训练阶段代码理解

文章目录 [toc] TGN模型训练阶段代码理解论文信息代码过程手绘代码训练过程compute_temporal_embeddingsupdate_memoryget_raw_messagesget_updated_memoryself.message_aggregator.aggregateself.memory_updater.get_updated_memoryMemoryget_embedding_moduleGraphAttentionE…

从线性回归到神经网络

一、线性回归关键思想 1、线性模型 2、基础优化算法 二、线性回归的从零开始实现 在了解线性回归的关键思想之后,我们可以开始通过代码来动手实现线性回归了。在这一节中,我们将从零开始实现整个方法,包括数据流水线、模型、损失函数和小批量…

深度探索Linux操作系统 —— 从内核空间到用户空间

系列文章目录 深度探索Linux操作系统 —— 编译过程分析 深度探索Linux操作系统 —— 构建工具链 深度探索Linux操作系统 —— 构建内核 深度探索Linux操作系统 —— 构建initramfs 深度探索Linux操作系统 —— 从内核空间到用户空间 文章目录 系列文章目录一、Linux操作系统加…

Java IO流(六)(字符流FileReader和FileWriter)

字符流 字符流的底层其实就是字节流 字符流字节流字符集 特点 输入流:一次读一个字节,遇到中文时,一次读多个字节 使用场景 对于纯文本文件进行读写操作 FileReader类 ①创建字符输入流对象 构造方法 说明 public FileReader(File f…

Configuring environment||ROS2环境配置

Goal: This tutorial will show you how to prepare your ROS 2 environment. Tutorial level: Beginner Time: 5 minutes ROS 2 relies on the notion (concept)of combining workspaces using the shell environment. “Workspace” is a ROS term …

读书笔记:《股票量化交易的七个策略》

从长远来看,基本面最重要;从短期来看,价格和情绪最重要。在别人贪婪时恐惧,在别人恐惧时贪婪。 相对强弱指数策略【趋势反转】 相对强弱指数(Relative Strength Index,RSI) RSI的取值范围在0到…

亚马逊云科技re_Invent 2023产品体验:亚马逊云科技产品应用实践 国赛选手带你看Elasticache Serverless

抛砖引玉 讲一下作者背景,曾经参加过国内世界技能大赛云计算的选拔,那么在竞赛中包含两类,一类是架构类竞赛,另一类就是TroubleShooting竞赛,对应的分别为AWS GameDay和AWS Jam,想必也有朋友玩过此类竞赛&…

【C++】输入输出流 ⑥ ( cout 标准输出流对象 | cout 常用 api 简介 | cout.put(char c) 函数 )

文章目录 一、cout 标准输出流对象1、cout 标准输出流对象简介2、cout 常用 api 简介 二、cout.put(char c) 函数1、cout.put(char c) 函数 简介2、代码示例 - cout.put(char c) 函数 一、cout 标准输出流对象 1、cout 标准输出流对象简介 cout 是 标准输出流 对象 , 是 ostrea…

Redis的概念与常见命令

🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风…

新版Spring Security6.2架构 (一)

Spring Security 新版springboot 3.2已经集成Spring Security 6.2,和以前会有一些变化,本文主要针对官网的文档进行一些个人翻译和个人理解,不对地方请指正。 整体架构 Spring Security的Servlet 支持是基于Servelet过滤器,如下…

永磁同步电机反电动势系数怎么算?磁链强度怎么算?转矩系数怎么算?

在进行永磁同步电机simulink仿真时,一个关键参数就是永磁体磁链强度, 实际上在simulink中,永磁体磁链强度/反电动势系数/转矩系数这三个是放一起的,这是因为他们都可互相算出来。 Torque constat (Nm/A) 转矩系数 1.5 * Np *…

Java 匿名内部类使用的外部变量,为什么一定要加 final?

问题描述 Effectively final Java 1.8 新特性,对于一个局部变量或方法参数,如果他的值在初始化后就从未更改,那么该变量就是 effectively final(事实 final)。 这种情况下,可以不用加 final 关键字修饰。 …

计算机设备管理器如何看内存,怎么查看电脑配置信息?3种方法,让你掌握电脑全部信息!...

转载:https://blog.csdn.net/weixin_35849957/article/details/118512756?spm1001.2014.3001.5502 原标题:怎么查看电脑配置信息?3种方法,让你掌握电脑全部信息! 电脑的配置决定了电脑性能高低以及运行速度。而电脑…

Ubuntu22.04 LTS + CUDA12.3 + CUDNN8.9.7 + PyTorch2.1.1

简介 本文记录Ubuntu22.04长期支持版系统下的CUDA驱动和cuDNN神经网络加速库的安装,并安装PyTorch2.1.1来测试是否安装成功。 安装Ubuntu系统 如果是旧的不支持UEFI启动的主板,请参考本人博客U盘系统盘制作与系统安装(详细图解&#xff09…