12种常见的华为杯数学建模竞赛matlab代码(建议收藏)

1.使用神经网络模型(向量量子化方法LVQ)解决分类/预测问题

clc;clear;% 第一类蝗虫的触角和翅膀p1 = [1.24, 1.27; 1.36, 1.74; 1.38, 1.64;      1.38, 1.82; 1.38, 1.90; 1.40, 1.70;      1.48, 1.82; 1.54, 1.82; 1.56, 2.08];% 第二类蝗虫的触角和翅膀p2 = [1.14, 1.82; 1.18, 1.96; 1.20, 1.86;      1.26, 2.00; 1.28, 2.00; 1.30, 1.96];% 合并两个类的数据p = [p1; p2]';% 分别获取触角和翅膀的最小值与最大值pr = minmax(p);% 目标分类:第一类蝗虫是 [1; 0],第二类蝗虫是 [0; 1]goal = [ones(1, 9), zeros(1, 6); zeros(1, 9), ones(1, 6)];% 可视化两类数据plot(p1(:, 1), p1(:, 2), 'h', p2(:, 1), p2(:, 2), 'o');% 创建 LVQ 神经网络,4个隐层神经元,分类比例 [0.6, 0.4]net = newlvq(pr, 4, [0.6, 0.4]);% 训练神经网络net = train(net, p, goal);% 使用训练好的网络进行分类Y = sim(net, p);% 待分类数据x = [1.24, 1.80; 1.28, 1.84; 1.40, 2.04]';sim(net, x)

2.使用神经网络模型(向后传播算法BP)解决蝗虫分类问题

%% clc, clear% 第一类蝗虫的触角和翅膀p1 = [1.24, 1.27; 1.36, 1.74; 1.38, 1.64; 1.38, 1.82; 1.38, 1.90; 1.40, 1.70; 1.48, 1.82; 1.54, 1.82; 1.56, 2.08];% 第二类蝗虫的触角和翅膀p2 = [1.14, 1.82; 1.18, 1.96; 1.20, 1.86;  1.26, 2.00; 1.28, 2.00; 1.30, 1.96];p = [p1; p2]';% 分别获取触角和翅膀的最小值与最大值pr = minmax(p);goal = [ones(1, 9), zeros(1, 6); zeros(1, 9), ones(1, 6)];plot(p1(:, 1), p1(:, 2), 'h', p2(:, 1), p2(:, 2), 'o');net = newff(pr, [3, 2], {'logsig', 'logsig'});  %函数newff建立一个可训练的前馈网络%----参数介绍-----%% net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF)% PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;% Si:第i层神经元个数;% TFi:第i层的传递函数,默认函数为tansig函数;% BTF:训练函数,默认函数为trainlm函数;% BLF:权值/阈值学习函数,默认函数为learngdm函数;% PF:性能函数,默认函数为mse函数。net.trainParam.show = 10;            % 现实频率,这里设置为没训练20次显示一次net.trainParam.lr = 0.05;                % 学习速率,这里设置为0.05net.trainParam.goal = 1e-10;        % 训练目标最小误差net.trainParam.epochs = 50000;  % 训练次数,这里设置为300次net = train(net, p, goal);% 待分类数据x = [1.24, 1.80; 1.28, 1.84; 1.40, 2.04]';% 分类:调用Simulink。输出的是什么信息?y0 = sim(net, p);y = sim(net, x);

代码主要通过前馈神经网络来对蝗虫的触角和翅膀数据进行二分类,训练后神经网络能够对新的蝗虫数据进行分类。

3.BP神经网络语音识别

%% 该代码为基于带动量项的BP神经网络语音识别%% <html>% <table border="0" width="600px" id="table1">  <tr>    <td><b><font size="2">该案例作者申明:</font></b></td>  </tr>  <tr><td><span class="comment"><font size="2">1:本人长期驻扎在此<a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html"><font color="#0000FF">板块</font></a>里,对该案例提问,做到有问必答。本套书籍官方网站为:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></span></td></tr><tr>    <td><font size="2">2:点此<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-284318&backurl=http://www.dangdang.com/">从当当预定本书</a>:<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-284318&backurl=http://www.dangdang.com/">《Matlab神经网络30个案例分析》</a>。</td></tr><tr>  <td><p class="comment"></font><font size="2">3</font><font size="2">:此案例有配套的教学视频,视频下载方式<a href="http://video.ourmatlab.com/vbuy.html">video.ourmatlab.com/vbuy.html</a></font><font size="2">。</font></p></td>  </tr>      <tr>    <td><span class="comment"><font size="2">    4:此案例为原创案例,转载请注明出处(《Matlab神经网络30个案例分析》)。</font></span></td>  </tr>    <tr>    <td><span class="comment"><font size="2">    5:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。</font></span></td>  </tr>    </table>% </html>%% 清空环境变量clcclear%% 训练数据预测数据提取及归一化%下载四类语音信号load data1 c1load data2 c2load data3 c3load data4 c4%四个特征信号矩阵合成一个矩阵data(1:500,:)=c1(1:500,:);data(501:1000,:)=c2(1:500,:);data(1001:1500,:)=c3(1:500,:);data(1501:2000,:)=c4(1:500,:);%从1到2000间随机排序k=rand(1,2000);[m,n]=sort(k);%输入输出数据input=data(:,2:25);output1 =data(:,1);%把输出从1维变成4维output=zeros(2000,4);for i=1:2000    switch output1(i)        case 1            output(i,:)=[1 0 0 0];        case 2            output(i,:)=[0 1 0 0];        case 3            output(i,:)=[0 0 1 0];        case 4            output(i,:)=[0 0 0 1];    endend%随机提取1500个样本为训练样本,500个样本为预测样本input_train=input(n(1:1500),:)';output_train=output(n(1:1500),:)';input_test=input(n(1501:2000),:)';output_test=output(n(1501:2000),:)';%输入数据归一化[inputn,inputps]=mapminmax(input_train);%% 网络结构初始化innum=24;midnum=25;outnum=4; %权值初始化w1=rands(midnum,innum);b1=rands(midnum,1);w2=rands(midnum,outnum);b2=rands(outnum,1);w2_1=w2;w2_2=w2_1;w1_1=w1;w1_2=w1_1;b1_1=b1;b1_2=b1_1;b2_1=b2;b2_2=b2_1;%学习率xite=0.1;alfa=0.01;loopNumber=10;I=zeros(1,midnum);Iout=zeros(1,midnum);FI=zeros(1,midnum);dw1=zeros(innum,midnum);db1=zeros(1,midnum);%% 网络训练E=zeros(1,loopNumber);for ii=1:10    E(ii)=0;    for i=1:1:1500       %% 网络预测输出         x=inputn(:,i);        % 隐含层输出        for j=1:1:midnum            I(j)=inputn(:,i)'*w1(j,:)'+b1(j);            Iout(j)=1/(1+exp(-I(j)));        end        % 输出层输出        yn=w2'*Iout'+b2;               %% 权值阀值修正        %计算误差        e=output_train(:,i)-yn;             E(ii)=E(ii)+sum(abs(e));                %计算权值变化率        dw2=e*Iout;        db2=e';                for j=1:1:midnum            S=1/(1+exp(-I(j)));            FI(j)=S*(1-S);        end              for k=1:1:innum            for j=1:1:midnum                dw1(k,j)=FI(j)*x(k)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));                db1(j)=FI(j)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));            end        end                   w1=w1_1+xite*dw1'+alfa*(w1_1-w1_2);        b1=b1_1+xite*db1'+alfa*(b1_1-b1_2);        w2=w2_1+xite*dw2'+alfa*(w2_1-w2_2);        b2=b2_1+xite*db2'+alfa*(b2_1-b2_2);                w1_2=w1_1;w1_1=w1;        w2_2=w2_1;w2_1=w2;        b1_2=b1_1;b1_1=b1;        b2_2=b2_1;b2_1=b2;    endend %% 语音特征信号分类inputn_test=mapminmax('apply',input_test,inputps);fore=zeros(4,500);for ii=1:1    for i=1:500%1500        %隐含层输出        for j=1:1:midnum            I(j)=inputn_test(:,i)'*w1(j,:)'+b1(j);            Iout(j)=1/(1+exp(-I(j)));        end                fore(:,i)=w2'*Iout'+b2;    endend%% 结果分析%根据网络输出找出数据属于哪类output_fore=zeros(1,500);for i=1:500    output_fore(i)=find(fore(:,i)==max(fore(:,i)));end%BP网络预测误差error=output_fore-output1(n(1501:2000))';%画出预测语音种类和实际语音种类的分类图figure(1)plot(output_fore,'r')hold onplot(output1(n(1501:2000))','b')legend('预测语音类别','实际语音类别')%画出误差图figure(2)plot(error)title('BP网络分类误差','fontsize',12)xlabel('语音信号','fontsize',12)ylabel('分类误差','fontsize',12)%print -dtiff -r600 1-4k=zeros(1,4);  %找出判断错误的分类属于哪一类for i=1:500    if error(i)~=0        [b,c]=max(output_test(:,i));        switch c            case 1                 k(1)=k(1)+1;            case 2                 k(2)=k(2)+1;            case 3                 k(3)=k(3)+1;            case 4                 k(4)=k(4)+1;        end    endend%找出每类的个体和kk=zeros(1,4);for i=1:500    [b,c]=max(output_test(:,i));    switch c        case 1            kk(1)=kk(1)+1;        case 2            kk(2)=kk(2)+1;        case 3            kk(3)=kk(3)+1;        case 4            kk(4)=kk(4)+1;    endend%正确率rightridio=(kk-k)./kk;disp('正确率')disp(rightridio);web browser www.matlabsky.com%%% <html>% <table width="656" align="left" >  <tr><td align="center"><p><font size="2"><a href="http://video.ourmatlab.com/">Matlab神经网络30个案例分析</a></font></p><p align="left"><font size="2">相关论坛:</font></p><p align="left"><font size="2">《Matlab神经网络30个案例分析》官方网站:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></p><p align="left"><font size="2">Matlab技术论坛:<a href="http://www.matlabsky.com">www.matlabsky.com</a></font></p><p align="left"><font size="2">M</font><font size="2">atlab函数百科:<a href="http://www.mfun.la">www.mfun.la</a></font></p><p align="left"><font size="2">Matlab中文论坛:<a href="http://www.ilovematlab.com">www.ilovematlab.com</a></font></p></td>  </tr></table>% </html>

4.基于PSO和BP网络的预测

%% 该代码为基于PSO和BP网络的预测%%% 清空环境clcclear%读取数据load data input output%节点个数inputnum=2;hiddennum=5;outputnum=1;%训练数据和预测数据input_train=input(1:1900,:)';input_test=input(1901:2000,:)';output_train=output(1:1900)';output_test=output(1901:2000)';%选连样本输入输出数据归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%构建网络net=newff(inputn,outputn,hiddennum);% 参数初始化%粒子群算法中的两个参数c1 = 1.49445;c2 = 1.49445;maxgen=100;   % 进化次数  sizepop=30;   %种群规模Vmax=1;Vmin=-1;popmax=5;popmin=-5;for i=1:sizepop    pop(i,:)=5*rands(1,21);    V(i,:)=rands(1,21);    fitness(i)=fun(pop(i,:),inputnum,hiddennum,outputnum,net,inputn,outputn);end% 个体极值和群体极值[bestfitness bestindex]=min(fitness);zbest=pop(bestindex,:);   %全局最佳gbest=pop;    %个体最佳fitnessgbest=fitness;   %个体最佳适应度值fitnesszbest=bestfitness;   %全局最佳适应度值%% 迭代寻优for i=1:maxgen    i;        for j=1:sizepop                %速度更新        V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));        V(j,find(V(j,:)>Vmax))=Vmax;        V(j,find(V(j,:)<Vmin))=Vmin;                %种群更新        pop(j,:)=pop(j,:)+0.2*V(j,:);        pop(j,find(pop(j,:)>popmax))=popmax;        pop(j,find(pop(j,:)<popmin))=popmin;                %自适应变异        pos=unidrnd(21);        if rand>0.95            pop(j,pos)=5*rands(1,1);        end              %适应度值        fitness(j)=fun(pop(j,:),inputnum,hiddennum,outputnum,net,inputn,outputn);    end        for j=1:sizepop    %个体最优更新    if fitness(j) < fitnessgbest(j)        gbest(j,:) = pop(j,:);        fitnessgbest(j) = fitness(j);    end        %群体最优更新     if fitness(j) < fitnesszbest        zbest = pop(j,:);        fitnesszbest = fitness(j);    end        end        yy(i)=fitnesszbest;            end%% 结果分析plot(yy)title(['适应度曲线  ' '终止代数=' num2str(maxgen)]);xlabel('进化代数');ylabel('适应度');x=zbest;%% 把最优初始阀值权值赋予网络预测% %用遗传算法优化的BP网络进行值预测w1=x(1:inputnum*hiddennum);B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);net.iw{1,1}=reshape(w1,hiddennum,inputnum);net.lw{2,1}=reshape(w2,outputnum,hiddennum);net.b{1}=reshape(B1,hiddennum,1);net.b{2}=B2;%% BP网络训练%网络进化参数net.trainParam.epochs=100;net.trainParam.lr=0.1;%net.trainParam.goal=0.00001;%网络训练[net,per2]=train(net,inputn,outputn);%% BP网络预测%数据归一化inputn_test=mapminmax('apply',input_test,inputps);an=sim(net,inputn_test);test_simu=mapminmax('reverse',an,outputps);error=test_simu-output_test;web browser www.matlabsky.comweb browser http://www.matlabsky.com/thread-11198-1-1.html%%% <html>% <table width="656" align="left" >  <tr><td align="center"><p><font size="2"><a href="http://video.ourmatlab.com/">Matlab神经网络30个案例分析</a></font></p><p align="left"><font size="2">相关论坛:</font></p><p align="left"><font size="2">《Matlab神经网络30个案例分析》官方网站:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></p><p align="left"><font size="2">Matlab技术论坛:<a href="http://www.matlabsky.com">www.matlabsky.com</a></font></p><p align="left"><font size="2">M</font><font size="2">atlab函数百科:<a href="http://www.mfun.la">www.mfun.la</a></font></p><p align="left"><font size="2">Matlab中文论坛:<a href="http://www.ilovematlab.com">www.ilovematlab.com</a></font></p></td>  </tr></table>% </html>

5.模拟退火算法

旅行商问题是一类经典的组合优化问题,目标是给定若干城市,旅行商需要找到一条从起点城市出发,经过每一个城市且仅经过一次,最后回到起点的最短路径。模拟退火算法解决旅行商问题,目标是在多个城市间找到一条最短路径。代码通过退火算法逐步优化初始解,利用蒙特卡洛模拟和退火过程使得解能跳出局部最优,最终找到全局最优解。

example_1.txt

53.71  15.30  51.17  00.03  46.33  28.28  30.33  06.9356.54  21.42  10.82  16.25  22.79  23.10  10.16  12.4820.11  15.46  01.95  00.21  26.50  22.12  31.48  08.9626.24  18.18  44.04  13.54  28.98  25.99  38.47  20.1728.27  29.00  32.19  05.87  36.49  29.73  00.97  28.1508.96  24.66  16.56  23.61  10.56  15.11  50.21  10.2908.15  09.53  22.11  18.56  00.12  18.87  48.21  16.89
%% simulated_annealing% 模拟退火算法:适用于寻找全局最小值的优化问题clc, clear,close allload example_1.txtdata = example_1;x = data(:, 1:2:8); x = x(:);y = data(:, 2:2:8); y = y(:);[n, m] = size(data);         % 返回数据的行数和列数(主要是需要行数)n = n * 4;                           % 每一行4个数据,一共有4n个点(再加上始末, 一共4n+2个点)data = [x y];d1 = [70, 40];data = [d1; data; d1];     % 始点与终点data = data * pi / 180;   % 从角度制转化为弧度制distance = zeros(n+2);  % 建立距离矩阵for i = 1:n+1    for j = i + 1:n+2        tmp = cos(data(i, 1) - data(j, 1)) * cos(data(i, 2)) * cos(data(j, 2)) + ...        sin(data(i, 2)) * sin(data(j, 2));        distance(i, j) = 6370 * acos(tmp);    endenddistance = distance + distance';S0 = [ ]; sum = inf;   % 看实际数据情况修改为一个较大的数字% 使用蒙特卡洛模拟求得一个初始解rand('twister',5489);for j = 1:1000    S = [1, 1+randperm(n), n+2];            % 长度为n+2的向量:第一位是1,中间是2到n+1的随机序列,最后一位是n+2    tmp = 0;    for i = 1:n+1        tmp = tmp + distance(S(i), S(i+1));    end    if tmp < sum        S0 = S; sum = tmp;    endend% 设定初始值e = 0.1^30;       % 终止温度L = 20000;         % 循环次数alpha = 0.999;  % 降温系数T = 1;                  % 初始温度% 退火过程for k = 1:L    % 产生新解    c = 2 + floor(n * rand(1, 2));   % 随机产生一个(2, n+2)之间的随机整数    c = sort(c);    c1 = c(1); c2 = c(2);    % 计算函数代价    delta = distance(S0(c1-1), S0(c2)) + distance(S0(c1), S0(c2+1)) - ...    distance(S0(c1-1), S0(c1)) - distance(S0(c2), S0(c2+1));    % 接收准则    if delta < 0  || exp(-delta / T) > rand(1)        S0 = [S0(1:c1-1), S0(c2:-1:c1), S0(c2+1:n+2)];        sum = sum + delta;    end    T = T * alpha;    if T < e        break;    endend% 输出巡航路径以及路径长度S0, sumdata = data * 180 / pi;    % 从弧度制转换回角度制hold onfor i = 1: n + 1    scatter(data(S0(i), 1), data(S0(i), 2), 'k');    plot([data(S0(i), 1), data(S0(i+1), 1)],[data(S0(i), 2), data(S0(i+1), 2)]);endplot([data(S0(n+1), 1), data(S0(n+2), 1)],[data(S0(n+1), 2), data(S0(n+2), 2)]);

1. 旅行商问题(TSP)

  • 经典的路径优化问题,要求找到一个城市巡回路径,使得总路径长度最短。模拟退火通过随机扰动当前解(如交换两城市顺序)来寻找最优路径。

2. 任务调度问题

  • 模拟退火可以应用于作业车间调度问题(Job Shop Scheduling Problem, JSSP),解决在多个机器上调度多个任务,最小化总完成时间(Makespan)等目标。

3. 网络优化

  • 在网络设计、路由优化等问题中,模拟退火可以寻找优化的网络拓扑结构或高效的路由路径。尤其在大规模通信网络中,它可用于解决多条路径的最优路由问题。

4. 图像处理与计算机视觉

  • 图像分割:模拟退火可以用于优化分割后的区域,使得分割结果满足一定的目标函数,比如最大化类间方差等。

  • 图像去噪:可以用于确定去噪的最佳参数,以在去除噪声的同时尽量保持图像的清晰度。

  • 立体匹配:在立体视觉中,用于寻找视差图的全局最优解。

5. 神经网络的权重优化

  • 模拟退火算法可以用于神经网络的权重初始化和优化,通过调整神经网络的权重以找到更好的收敛效果和最优权重组合,避免陷入局部最优。

6. 函数优化

  • 高维函数优化问题中,特别是具有多个局部极值点的非凸函数,模拟退火可通过随机跳跃避免陷入局部极值,从而找到全局最优值。

7. 结构优化

  • 天线设计:通过模拟退火算法优化天线的形状和尺寸,以获得最佳性能。

  • 建筑设计:应用于优化建筑结构、材料使用等,寻求在有限成本下的最佳结构设计方案。

8. 参数估计与模型拟合

  • 模拟退火可以用于寻找复杂模型的最佳参数组合,如机器学习模型中的超参数调优,通过模拟退火搜索最优参数组合,以最大化模型性能。

9. 组合优化

  • 背包问题:在背包问题中,模拟退火可用于寻找物品的最优选择组合,使得背包的总价值最大化且不超出容量限制。

  • 分配问题:如资源分配、人员分配等,通过模拟退火找到最优的分配方式,满足一定的约束条件。

10. 分子结构优化与药物设计

  • 在化学和生物信息学领域,模拟退火算法可以用于分子结构优化,寻找低能量稳定结构;在药物设计中,它可以帮助优化药物分子的构型和排列。

11. 金融优化问题

  • 在金融领域,模拟退火可以应用于投资组合优化,寻找收益最大、风险最小的投资组合配置方式,或者用于期权定价等金融工程问题中的优化。

12. 物流与供应链优化

  • 模拟退火可用于物流配送中的路径优化、仓库选址等问题。通过不断调整方案寻找最低成本和最佳效率的方案。

13. 基因序列比对

  • 在生物信息学中,模拟退火可以用于寻找最优的基因序列比对方案,从而找到两个基因序列之间的最优匹配。

14. 城市规划与交通优化

  • 在城市规划中,模拟退火算法可用于交通流量优化,例如优化信号灯配置,减少交通堵塞,或者规划最优的公共交通路线。

15. 电力系统优化

  • 应用于电力系统中的电网优化,模拟退火可以帮助优化电力网络中的节点连接,以减少损耗并提高电力传输的效率。

总结:

模拟退火算法由于其跳出局部最优的能力和全局优化的效果,广泛应用于各种复杂的优化问题,尤其是在无法通过传统确定性方法有效求解的问题上。

6.灰色预测

%Matlab的灰色预测程序:%y=input('请输入数据');clc;cleary=[29.8 30.11 41.05 70.12 77.79 77.79 104.82 65.22 82.7 100.79]n=length(y);yy=ones(n,1);yy(1)=y(1);for i=2:nyy(i)=yy(i-1)+y(i) endB=ones(n-1,2);for i=1:(n-1)B(i,1)=-(yy(i)+yy(i+1))/2;B(i,2)=1;endBT=B';for j=1:(n-1)    YN(j)=y(j+1);endYN=YN';A=inv(BT*B)*BT*YN;a=A(1);u=A(2);t=u/a;t_test=input('输入需要预测的个数');i=1:t_test+n;yys(i+1)=(y(1)-t).*exp(-a.*i)+t;yys(1)=y(1);for j=n+t_test:-1:2    ys(j)=yys(j)-yys(j-1);endx=1:n;xs=2:n+t_test;yn=ys(2:n+t_test);plot(x,y,'^r',xs,yn,'*-b');det=0;for i=2:ndet=det+abs(yn(i)-y(i));enddet=det/(n-1);disp(['百分绝对误差为:',num2str(det),'%']);disp(['预测值为:',num2str(ys(n+1:n+t_test))]);%请输入数据 [29.8 30.11 41.05 70.12 77.79 77.79 104.82 65.22 82.7 100.79]

7.偏最小二乘回归

%% I. 清空环境变量clear allclc%% II. 导入数据load spectra;%% III. 随机划分训练集与测试集temp = randperm(size(NIR, 1));% temp = 1:60;%%% 1. 训练集——50个样本P_train = NIR(temp(1:50),:);T_train = octane(temp(1:50),:);%%% 2. 测试集——10个样本P_test = NIR(temp(51:end),:);T_test = octane(temp(51:end),:);%% IV. PLS回归模型%%% 1. 创建模型k = 2;[Xloadings,Yloadings,Xscores,Yscores,betaPLS,PLSPctVar,MSE,stats] = plsregress(P_train,T_train,k);%%% 2. 主成分贡献率分析figurepercent_explained = 100 * PLSPctVar(2,:) / sum(PLSPctVar(2,:));pareto(percent_explained)xlabel('主成分')ylabel('贡献率(%)')title('主成分贡献率')%%% 3. 预测拟合N = size(P_test,1);T_sim = [ones(N,1) P_test] * betaPLS;%% V. 结果分析与绘图%%% 1. 相对误差errorerror = abs(T_sim - T_test) ./ T_test;%%% 2. 决定系数R^2R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2)); %%% 3. 结果对比result = [T_test T_sim error]%% % 4. 绘图figureplot(1:N,T_test,'b:*',1:N,T_sim,'r-o')legend('真实值','预测值','location','best')xlabel('预测样本')ylabel('辛烷值')string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};title(string)

8.主成分回归

%% I. 清空环境变量clear allclc%% II. 导入数据load spectra;%% III. 随机划分训练集与测试集temp = randperm(size(NIR, 1));% temp = 1:60;%%% 1. 训练集——50个样本P_train = NIR(temp(1:50),:);T_train = octane(temp(1:50),:);%%% 2. 测试集——10个样本P_test = NIR(temp(51:end),:);T_test = octane(temp(51:end),:);%% IV. 主成分分析%%% 1. 主成分贡献率分析[PCALoadings,PCAScores,PCAVar] = princomp(NIR);figurepercent_explained = 100 * PCAVar / sum(PCAVar);pareto(percent_explained)xlabel('主成分')ylabel('贡献率(%)')title('主成分贡献率')%%% 2. 第一主成分vs.第二主成分[PCALoadings,PCAScores,PCAVar] = princomp(P_train);figureplot(PCAScores(:,1),PCAScores(:,2),'r+')hold on[PCALoadings_test,PCAScores_test,PCAVar_test] = princomp(P_test);plot(PCAScores_test(:,1),PCAScores_test(:,2),'o')xlabel('1st Principal Component')ylabel('2nd Principal Component')legend('Training Set','Testing Set','location','best')%% V. 主成分回归模型%%% 1. 创建模型k = 4;betaPCR = regress(T_train-mean(T_train),PCAScores(:,1:k));betaPCR = PCALoadings(:,1:k) * betaPCR;betaPCR = [mean(T_train)-mean(P_train) * betaPCR;betaPCR];%%% 2. 预测拟合N = size(P_test,1);T_sim = [ones(N,1) P_test] * betaPCR;%% VI. 结果分析与绘图%%% 1. 相对误差errorerror = abs(T_sim - T_test) ./ T_test;%%% 2. 决定系数R^2R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2)); %%% 3. 结果对比result = [T_test T_sim error]%% % 4. 绘图figureplot(1:N,T_test,'b:*',1:N,T_sim,'r-o')legend('真实值','预测值','location','best')xlabel('预测样本')ylabel('辛烷值')string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};title(string)

9.蚁群算法求最短路径

clc %清空命令行窗口clear %从当前工作区中删除所有变量,并将它们从系统内存中释放close all %删除其句柄未隐藏的所有图窗tic % 保存当前时间%% 蚁群算法求解CDVRP%输入:%City           需求点经纬度%Distance       距离矩阵%Demand         各需求点需求量%AntNum         种群个数%Alpha          信息素重要程度因子%Beta           启发函数重要程度因子%Rho            信息素挥发因子%Q              常系数%Eta            启发函数%Tau            信息素矩阵%MaxIter        最大迭代次数%输出:%bestroute      最短路径%mindisever     路径长度%% 加载数据load('../test_data/City.mat')        %需求点经纬度,用于画实际路径的XY坐标load('../test_data/Distance.mat')    %距离矩阵load('../test_data/Demand.mat')       %需求量load('../test_data/Travelcon.mat')    %行程约束load('../test_data/Capacity.mat')     %车容量约束%% 初始化问题参数CityNum = size(City,1)-1;    %需求点个数%% 初始化参数AntNum = 8;                            % 蚂蚁数量Alpha = 1;                              % 信息素重要程度因子Beta = 5;                               % 启发函数重要程度因子Rho = 0.1;                              % 信息素挥发因子Q = 1;                                  % 常系数Eta = 1./Distance;                      % 启发函数Tau = ones(CityNum+1);                  % (CityNum+1)*(CityNum+1)信息素矩阵  初始化全为1Population = zeros(AntNum,CityNum*2+1);  % AntNum行,(CityNum*2+1)列 的路径记录表MaxIter = 100;                           % 最大迭代次数bestind = ones(1,CityNum*2+1);  % 各代最佳路径MinDis = zeros(MaxIter,1);              % 各代最佳路径的长度%% 迭代寻找最佳路径Iter = 1;                               % 迭代次数初值while Iter <= MaxIter %当未到达最大迭代次数  %% 逐个蚂蚁路径选择      for i = 1:AntNum        TSProute=2:CityNum+1; %生成一条顺序不包括首尾位的升序TSP路线        VRProute=[]; %初始化VRP路径                while ~isempty(TSProute)%开辟新的子路径            subpath=1; %先将配送中心放入子路径起点            DisTraveled=0; %此子路径的距离初始化为零            delivery=0; %此子路径的车辆可配送量初始化为零                        delete=subpath; %delete(end)=1给第一次进入内while的P(k)首项用            while ~isempty(TSProute) %为子路径subpath第二个及以后的位置安排需求点                %% 计在内while中计算城市间转移概率                                P = TSProute; % 为轮盘赌选择建立等于剩余需经过城市数量的长度的向量                for k = 1:length(TSProute)                    %delete(end)为刚刚经过的城市,TSProute(k)为剩余可能经过的城市                    P(k) = Tau(delete(end),TSProute(k))^Alpha * Eta(delete(end),TSProute(k))^Beta; %省略相同分母                end                P = P/sum(P);                % 轮盘赌法选择下一个访问城市                Pc = cumsum(P); %累加概率                                TargetIndex = find(Pc >= rand); %寻找左数第一个大于伪随机数的累加概率的索引                target = TSProute(TargetIndex(1)); %此索引对应的城市                %不要强行改变蚂蚁通过轮盘法选到的下一个城市                %它选到就确定了,然后如果超约束,结束此subpath                                %判断行程约束                if delivery+Demand(target) > Capacity || DisTraveled+Distance(delete(end),target)+Distance(target,1) > Travelcon                    break                else                    DisTraveled=DisTraveled+Distance(delete(end),target); %若符合,则经过的距离累加此距离                    delivery = delivery+Demand(target);                                        %此点加入子路径                    subpath=[subpath,target];                    %此点加入要删除的点序列                    delete=[delete,target];                                        %TSP路径中排除已安排的城市                    TSProute=setdiff(TSProute,delete);                end            end %内while结束,此subpath结束            %直接在VRProute后面填充这条子路径            VRProute=[VRProute,subpath];        end %外while结束,此VRProute完整        %在VRProute后未到CityNum*2+1的空位填入1        fillwithones = linspace(1,1,CityNum*2+1-length(VRProute));        VRProute=[VRProute,fillwithones];                %把成型的VRP路径赋给种群矩阵        Population(i,:)=VRProute;  end      %% 计算各个蚂蚁的路径距离  ttlDistance = zeros(AntNum,1); %预分配内存  for i = 1:AntNum        DisTraveled=0;  % 蚂蚁子路径已经过的距离        delivery=0; % 汽车已经送货量,即已经到达点的需求量之和        Dis=0;  %此蚂蚁所有子路径的总距离        route = Population(i,:); %单独取出一只蚂蚁的路线        for j=2:length(route)            DisTraveled = DisTraveled+Distance(route(j-1),route(j)); %每两点间距离累加            delivery = delivery+Demand(route(j)); %累加可配送量            if DisTraveled > Travelcon || delivery > Capacity                Dis = Inf;  %对非可行解进行惩罚                break            end            if route(j)==1 %若此位是配送中心                Dis=Dis+DisTraveled; %累加已行驶距离                DisTraveled=0; %已行驶距离置零                delivery=0; %已配送置零            end        end        ttlDistance(i)=Dis; %存储此方案总距离  end      %% 存储历史最优信息  if Iter == 1 %若是第一次迭代 不需要与上次迭代结果对比        [min_Length,min_index] = min(ttlDistance); %取得此次迭代最短距离        MinDis(Iter) = min_Length; %存储此次迭代最优路线的距离        bestind = Population(min_index,:); %存储此次迭代最优路径  else        [min_Length,min_index] = min(ttlDistance); %取得此次迭代最短距离        MinDis(Iter) = min(MinDis(Iter-1),min_Length); %与上次迭代结果对比        if min_Length == MinDis(Iter) %若此代最短距离是在此代中出现            bestind = Population(min_index,:); %此代最短距离对应的路径赋给此代最优路径        end  end      %% 更新信息素  Delta_Tau = zeros(CityNum+1,CityNum+1); %预分配内存      % 逐个蚂蚁计算  for i = 1:AntNum        % 逐个城市计算        for j = 1:size(Population,2)-1            %所有蚂蚁从i到j的信息素累积和:用这一点Delta_Tau之前的值加上新值等于现在的信息素浓度            Delta_Tau(Population(i,j),Population(i,j+1)) = Delta_Tau(Population(i,j),Population(i,j+1)) + Q/ttlDistance(i);        end  end  Tau = (1-Rho)*Tau+Delta_Tau; %对信息素矩阵进行整体计算,减去挥发,加上新生成的信息素        %% 显示此代信息    fprintf('Iteration = %d, Min Distance = %.2f km  \n',Iter,MinDis(Iter))        %% 更新迭代次数  Iter = Iter+1; %迭代次数加1  %Population = zeros(AntNum,CityNum*2+1); %清空路径记录表    end%% 找出历史最短距离和对应路径mindisever = MinDis(MaxIter); % 取得历史最优适应值的位置、最优目标函数值bestroute = bestind; % 取得最优个体%删去路径中多余1for i=1:length(bestroute)-1    if bestroute(i)==bestroute(i+1) %相邻位都为1时        bestroute(i)=0;  %前一个置零    endendbestroute(bestroute==0)=[];  %删去多余零元素bestroute=bestroute-1;  % 编码各减1,与文中的编码一致%% 计算结果数据输出到命令行disp('-------------------------------------------------------------')toc %显示运行时间fprintf('Total Distance = %s km \n',num2str(mindisever))TextOutput(Distance,Demand,bestroute,Capacity)  %显示最优路径disp('-------------------------------------------------------------')%% 迭代图figureplot(MinDis,'LineWidth',2) %展示目标函数值历史变化xlim([1 Iter-1]) %设置 x 坐标轴范围set(gca, 'LineWidth',1)xlabel('Iterations')ylabel('Min Distance(km)')title('ACO Process')%% 绘制实际路线DrawPath(bestroute,City)

10.主成分分析:

% 示例调用代码% 生成一些测试数据,5个样本,3个特征(指标变量)h = [    2.5, 2.4, 1.0;    0.5, 0.7, 0.5;    2.2, 2.9, 1.5;    1.9, 2.2, 1.7;    3.1, 3.0, 2.0;    2.3, 2.7, 1.8;    2.0, 1.6, 1.2;    1.0, 1.1, 0.8;    1.5, 1.6, 1.2;    1.1, 0.9, 0.6;];% 调用主成分分析算法[tg, xs, q, px, newdt] = pca(h);% 显示输出结果disp('特征根及贡献率:');disp(tg);disp('选择的主成分系数:');disp(xs);disp('主成分综合评价模型系数:');disp(q);% 如果进行了主成分综合评价,还会显示排序结果if ~isempty(px)    disp('主成分综合评价排序结果:');    disp(px);end
function [tg xs q px newdt]=pca(h)  %输入只能是以分析的指标变量为列,样本变量为行的数据!h=zscore(h); %数据标准化r=corrcoef(h); %计算相关系数矩阵disp('计算的相关系数矩阵如下:');disp(r);[x,y,z]=pcacov(r);  %计算特征向量与特征值s=zeros(size(z));for i=1:length(z)    s(i)=sum(z(1:i));enddisp('由上计算出相关系数矩阵的前几个特征根及其贡献率:');disp([z,s])tg=[z,s];f=repmat(sign(sum(x)),size(x,1),1);x=x.*f;n=input('请选择前n个需要计算的主成分:\n');disp('由此可得选择的主成分系数分别为:');for i=1:n    xs(i,:)=(x(:,i)');endnewdt=h*xs';disp('以主成分的贡献率为权重,构建主成分综合评价模型系数:');q=((z(1:n)./100)')w=input('是否需要进行主成分综合评价?(y or n)\n');if w==y    df=h*x(:,1:n);    tf=df*z(1:n)/100;    [stf,ind]=sort(tf,'descend'); %按照降序排列    disp('主成分综合评价结果排序:');    px=[ind,stf]else    return;end

常见的最优化算法:

1.约束优化问题:

  • minRosen(Rosen梯度法求解约束多维函数的极值)(算法还有bug)

  • minPF(外点罚函数法解线性等式约束)

  • minGeneralPF(外点罚函数法解一般等式约束)

  • minNF(内点罚函数法)

  • minMixFun(混合罚函数法)

  • minJSMixFun(混合罚函数加速法)

  • minFactor(乘子法)

  • minconPS(坐标轮换法)(算法还有bug)

  • minconSimpSearch(复合形法)

2.非线性最小二乘优化问题

  • minMGN(修正G-N法)

3.线性规划:

  • CmpSimpleMthd(完整单纯形法)

4.整数规划(含0-1规划)

  • DividePlane(割平面法)

  • ZeroOneprog(枚举法)

5.二次规划

  • QuadLagR(拉格朗日法)

  • ActivedeSet(起作用集法)

6.辅助函数(在一些函数中会调用)

  • minNT(牛顿法求多元函数的极值)

  • Funval(求目标函数的值)

  • minMNT(修正的牛顿法求多元函数极值)

  • minHJ(黄金分割法求一维函数的极值)

7.高级优化算法

1)粒子群优化算法(求解无约束优化问题)

  • 1>PSO(基本粒子群算法)

  • 2>YSPSO(待压缩因子的粒子群算法)

  • 3>LinWPSO(线性递减权重粒子群优化算法)

  • 4>SAPSO(自适应权重粒子群优化算法)

  • 5>RandWSPO(随机权重粒子群优化算法)

  • 6>LnCPSO(同步变化的学习因子)

  • 7>AsyLnCPSO(异步变化的学习因子)(算法还有bug)

  • 8>SecPSO(用二阶粒子群优化算法求解无约束优化问题)

  • 9>SecVibratPSO(用二阶振荡粒子群优化算法求解五约束优化问题)

  • 10>CLSPSO(用混沌群粒子优化算法求解无约束优化问题)

  • 11>SelPSO(基于选择的粒子群优化算法)

  • 12>BreedPSO(基于交叉遗传的粒子群优化算法)

  • 13>SimuAPSO(基于模拟退火的粒子群优化算法)

2)遗传算法

  • 1>myGA(基本遗传算法解决一维约束规划问题)

  • 2>SBOGA(顺序选择遗传算法求解一维无约束优化问题)

  • 3>NormFitGA(动态线性标定适应值的遗传算法求解一维无约束优化问题)

  • 4>GMGA(大变异遗传算法求解一维无约束优化问题)

  • 5>AdapGA(自适应遗传算法求解一维无约束优化问题)

  • 6>DblGEGA(双切点遗传算法求解一维无约束优化问题)

  • 7>MMAdapGA(多变异位自适应遗传算法求解一维无约束优化问题)

11.离散Hopfield的分类——高校科研能力评价

%% 离散Hopfield的分类——高校科研能力评价%% 清空环境变量clear allclc%% 导入记忆模式T = [-1 -1 1; 1 -1 1]';%% 权值和阈值学习[S,Q] = size(T);Y = T(:,1:Q-1) - T(:,Q)*ones(1,Q-1);[U,SS,V] = svd(Y);K = rank(SS);TP = zeros(S,S);for k = 1:K  TP = TP + U(:,k)*U(:,k)';endTM = zeros(S,S);for k = K+1:S  TM = TM + U(:,k)*U(:,k)';endtau = 10;Ttau = TP - tau*TM;Itau = T(:,Q) - Ttau*T(:,Q);h = 0.15;C1 = exp(h)-1;C2 = -(exp(-tau*h) - 1)/tau;w = expm(h*Ttau);b = U * [  C1*eye(K)         zeros(K,S-K);         zeros(S-K,K)  C2*eye(S-K)] * U' * Itau;     %% 导入待记忆的模式Ai = [-0.7; -0.6; 0.6];y0 = Ai;%% 迭代计算for i = 1:5    for j = 1:size(y0,1)        y{i}(j,:) = satlins(w(j,:)*y0 + b(j));    end    y0 = y{i};endy{1}

12.SVM分类与回归

%% A Little Clean Worktic;clear;clc;close all;format compact;%% 使用SVM进行分类的小例子%{一个班级里面有两个男生(男生1、男生2),两个女生(女生1、女生2),其中男生1 身高:176cm 体重:70kg;男生2 身高:180cm 体重:80kg;女生1 身高:161cm 体重:45kg;女生2 身高:163cm 体重:47kg;如果我们将男生定义为1,女生定义为-1,并将上面的数据放入矩阵data中,并在label中存入男女生类别标签(1、-1)%}% 数据data = [176 70;        180 80;        161 45;        163 47];label = [1;1;-1;-1]; % 1表示男,-1表示女% 使用fitcsvm建立分类模型model = fitcsvm(data, label);% 新数据预测testdata = [190 85];[predictlabel, score] = predict(model, testdata);% 显示预测结果disp(['预测标签: ', num2str(predictlabel)]);if predictlabel == 1    disp('==该生为男生');elseif predictlabel == -1    disp('==该生为女生');end%% 使用fitcsvm测试heart_scale数据集% 首先载入数据load heart_scale;data = heart_scale_inst;label = heart_scale_label;% 选取前200个数据作为训练集合,后70个数据作为测试集合ind = 200;traindata = data(1:ind,:);trainlabel = label(1:ind,:);testdata = data(ind+1:end,:);testlabel = label(ind+1:end,:);% 利用训练集合建立分类模型model = fitcsvm(traindata, trainlabel, 'KernelFunction', 'rbf', 'BoxConstraint', 1.2, 'KernelScale', 2.8);% 在训练集合上测试模型[ptrain, score_train] = predict(model, traindata);disp('训练集合分类准确率:');train_accuracy = sum(ptrain == trainlabel) / length(trainlabel) * 100;disp(train_accuracy);% 在测试集合上测试模型[ptest, score_test] = predict(model, testdata);disp('测试集合分类准确率:');test_accuracy = sum(ptest == testlabel) / length(testlabel) * 100;disp(test_accuracy);%% 使用SVM进行回归的小例子% 生成待回归的数据x = (-1:0.1:1)';y = -x.^2;% 使用fitrsvm建立回归模型model = fitrsvm(x, y, 'KernelFunction', 'rbf', 'BoxConstraint', 2.2, 'KernelScale', 2.8, 'Epsilon', 0.01);% 调用 predict 进行回归预测py = predict(model, x); % 去掉 ~ 仅返回一个输出% 绘图部分保持不变scrsz = get(0,'ScreenSize');figure('Position',[scrsz(3)*1/4 scrsz(4)*1/6  scrsz(3)*4/5 scrsz(4)]*3/4);plot(x, y, 'o');hold on;plot(x, py, 'r*');legend('原始数据', '回归数据');grid on;% 进行预测testx = 1.1;disp('真实数据');testy = -testx.^2% 使用模型预测ptesty = predict(model, testx);disp('预测数据');disp(ptesty);%% Record Timetoc;

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小众语言ruby在苹果中的初步应用

前言 感觉Ruby在苹果系统中充当一种脚本语言来使用。 1、直接输入ruby没有反应 2、可显示结果的命令 ruby -e "puts Goodbye, cruel world!" 效果如下图&#xff1a; 说明苹果系统中ruby已经安装完毕&#xff0c;或者就是自带的。 3、编辑运行第一个ruby程序 输入…

阿里云盘bug,个人照片泄露 安当TDE透明加密完美保障数据安全

近期&#xff0c;阿里云盘出现了一个严重的隐私安全事件。用户在创建新相册时&#xff0c;系统意外地加载出了其他用户的照片&#xff0c;这些照片包括自拍、风景照、家人旅游照片等&#xff0c;引发了用户对隐私安全的担忧。阿里云盘官方对此事件迅速作出回应&#xff0c;确认…

ADB 安装教程:如何在 Windows、macOS 和 Linux 上安装 Android Debug Bridge

目录 一、ADB 介绍 二、Windows 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 验证 ADB 安装 4. 配置环境变量 5. 验证全局 ADB 使用 三、macOS 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 配置环境变量 4. 验证 ADB 安装 四、Linux 系统安装 ADB 1. 使用包管理器安装…

MySQL高阶1890-2020年最后一次登录

目录 题目 准备数据 分析数据 题目 编写解决方案以获取在 2020 年登录过的所有用户的本年度 最后一次 登录时间。结果集 不 包含 2020 年没有登录过的用户。 返回的结果集可以按 任意顺序 排列。 准备数据 Create table If Not Exists Logins (user_id int, time_stamp …

钉钉 钉钉打卡 钉钉定位 2024 免费试用 保用

打卡助手定位 如图&#xff0c;表示开启成功&#xff0c;软件已定位到钉钉打卡位置。 测试显示&#xff0c;高德地图位置已成功修改。 开启助手定位后&#xff0c;观察效果&#xff0c;打卡按钮由无法打卡变为可打卡状态&#xff0c;照片还显示打卡地点。 伙伴们担心作弊行为会…

《程序猿之设计模式实战 · 观察者模式》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

摩尔-彭罗斯伪逆(pinv)

摩尔-彭罗斯伪逆是一种矩阵&#xff0c;可在不存在逆矩阵的情况下作为逆矩阵的部分替代。此矩阵常被用于求解没有唯一解或有许多解的线性方程组。 对于任何矩阵 A 来说&#xff0c;伪逆 B 都存在&#xff0c;是唯一的&#xff0c;并且具有与 A’ 相同的维度。如果 A 是方阵且非…

[Linux]自定义shell详解

自定义shell 前言1.命令行提示符&#xff0c;字符串的打印1.1命令行提示符2.命令行字符串 2.0对命令行字符串进行切割2.执行命令3.有趣的小问题完整代码 前言 写之前我们先看看一个完整的shell都包括了什么 $符号前面&#xff08;包括这个符号&#xff09;就是命令行提示符&a…

Mac 上哪个剪切板增强工具比较好用? 好用剪切板工具推荐

在日常文字编辑中&#xff0c;我们经常需要重复使用复制的内容。然而&#xff0c;新内容一旦复制&#xff0c;旧内容就会被覆盖。因此&#xff0c;选择一款易用高效的剪贴板工具成为了许多人的需求。本文整理了一些适用于 macOS 系统的优秀剪贴板增强工具&#xff0c;欢迎大家下…

OJ 旋转图像

题目&#xff1a; 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例&#xff1a; 解题规律: 我们以题目中的示例二作为例子&a…

2024年全新deepfacelive如何对应使用直播伴侣-腾讯会议等第三方软件

# 2024年全新deepfacelive如何对应使用直播伴侣-腾讯会议等第三方软件 前提按照之前的步骤打开deepfacelive正确配置并且在窗口已经输出了换脸后的视频&#xff0c;不懂步骤可以移步 https://doc.youyacao.com/88/2225 ## 首先下载obs并配置 https://obsproject.com/ 通过…

Vue: 创建vue项目

目录 一.创建项目 二.项目添加 三.添加成功 一.创建项目 打开本机终端输入npm create vuelatest 二.项目添加 1. 项目名称&#xff1a; Project name: one_vue 2.是否添加TypeScript支持&#xff1a;Add TypeScript? Yes 3.是否添加JSX支持&#xff1a;Add JSX Suppor…

英飞凌 PSoC6 评估板 CAPSENSE 触摸滑条应用示例

PSoC™ 62 with CAPSENSE™ evaluation kit 开发板&#xff08;以下简称 PSoC 6 RTT 开发板&#xff09;是英飞凌&#xff08;Infineon&#xff09;联合 RT-Thread 发布一款面向物联网开发者的 32 位双核 MCU 开发套件&#xff0c;其默认内置 RT-Thread 物联网操作系统。本文主…

《网络协议 - HTTP传输协议及状态码解析》

文章目录 一、HTTP协议结构图二、HTTP状态码解读1xx: 信息响应类2xx: 成功响应类3xx: 重定向类4xx: 客户端错误类5xx: 服务器错误类 一、HTTP协议结构图 二、HTTP状态码解读 HTTP状态码&#xff08;英语&#xff1a;HTTP Status Code&#xff09;是用以表示网页服务器超文本传…

java通过org.eclipse.milo实现OPCUA客户端进行连接和订阅

前言 之前写过一篇关于MQTT的方式进行物理访问的文章&#xff1a;SpringBoot集成MQTT&#xff0c;WebSocket返回前端信息_springboot mqtt websocket-CSDN博客 最近又接触到OPCUA协议&#xff0c;想通过java试试看能不能实现。 软件 在使用java实现之前&#xff0c;想着有没…

品牌力是什么?如何评估企业品牌影响力?

品牌影响力&#xff0c;其实就是指品牌在消费者心智中所占据的位置&#xff0c;以及它对消费者购买决策和行为的影响力。如果一个企业的品牌影响力越强&#xff0c;它在消费者心中的印象就越深刻&#xff0c;能够更有效地驱动消费者的购买行为&#xff0c;形成品牌忠诚度&#…

2024.9.20营养小题【2】(动态分配二维数组)

这道题里边涉及到了动态分配二维数组的知识点&#xff0c;不刷这道题我也不知道这个知识点&#xff0c;算是一个比较进阶一点的知识点了。 参考&#xff1a;C语言程序设计_动态分配二维数组_哔哩哔哩_bilibili【C/C 数据结构 】二维数组结构解析 - 知乎 (zhihu.com)

JSONC:为JSON注入注释的力量

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;广泛应用于Web开发、配置文件和数据存储等领域。 其简洁的语法和易于解析的特点&#xff0c;使得JSON成为了现代编程中不可或缺的一部分。然而&#xff0c;JSON的一个显著缺点是…

迁移学习+多模态融合,小白轻松发一区!创新性拉满!

多模态研究如今愈发火热&#xff0c;已成为各大顶级会议的投稿热门。今天&#xff0c;我为大家提供一个多模态的创新思路&#xff1a;迁移学习与多模态融合。 迁移学习多模态融合方向的优势 1.提升模型性能&#xff1a;综合更多维度优势&#xff0c;跨模态互补 2.快速适应新…

深入理解ConcurrentHashMap

HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进行put操作&#xff0c;调用了HashMap的putVal()&#xff0c;具体原因&#xff1a; 1、假设两个线程A、B都在进行put操作&#xff0c;并且hash函数计算出的插入下标是相同的&#xff1b; 当线程A执行完第六行由于时间…