首页 > 其他分享 >MATLAB 实现sobol参数敏感性分析

MATLAB 实现sobol参数敏感性分析

时间:2023-12-29 11:15:05浏览次数:28  
标签:end zeros %% 敏感性 参数 MATLAB nPop sobol EX

 1 % sobol 参数敏感性分析
 2 %参考:
 3 % csdn : https://blog.csdn.net/xiaosebi1111/article/details/46517409
 4 % wiki: https://en.wikipedia.org/wiki/Variance-based_sensitivity_analysis
 5 %运行环境 matlab2016b
 6 %作者 [email protected] 2020年6月7日
 7 %% 初始化
 8 clc;
 9 clear all;
10 close all;
11 %% 设定:给定参数个数和各个参数的范围
12 D=3;% 维度3,几个参数
13 M=D*2;% 
14 nPop=4;% 采样点个数,也就是参数水平数 ,取大了好,比如4000,但慢
15 VarMin=[0 0 0 ];%各个参数下限
16 VarMax=[1 1 1];%各个参数上限
17 %% 产生所需的各水平参数
18 VarMin=[VarMin,VarMin];
19 VarMax=[VarMax,VarMax];
20 p= sobolset(M);% https://www.cnblogs.com/zhubinglong/p/12260292.html
21 % R=p(1:nPop,:);% 我只用前nPop个
22 R=[];
23 for i=1:nPop
24     r=p(i,:);
25     r=VarMin+r.*(VarMax-VarMin);
26     R=[R; r];
27 end
28 % plot(R(:,1),'b*')
29 % 拆分为A B
30 A=R(:,1:D);% 每行代表一组参数,其中每列代表每组参数的一个参数;行数就代表共有几组参数
31 B=R(:,D+1:end);
32 % 根据A B 产生矩阵AB
33 AB=zeros(nPop,D,D);
34 for i=1:D
35     tempA=A;
36     tempA(:,i)=B(:,i);
37     AB(1:nPop,1:D,i)=tempA;
38 end
39 %% 求各参数解
40 YA=zeros(nPop,1);% 解
41 YB=zeros(nPop,1);
42 YAB=zeros(nPop,D);%分别代表YAB1,YAB2,YAB3,YAB(:,D)就代表YABD
43 for i=1:nPop
44     YA(i)=myfun(A(i,:));
45     YB(i)=myfun(B(i,:));
46     for j=1:D
47         YAB(i,j)=myfun(AB(i,:,j));
48     end
49 end
50 %%  根据一阶影响指数公式:
51 VarX=zeros(D,1);% S的分子
52 S=zeros(D,1);
53 
54 % 0: 估算基于给定样本的方差(EXCEL var.p) ;   1:计算基于给定的样本总体的方差(EXCEL var.p())
55 % var([2.091363878    1.110366059    3.507651769    1.310950363    2.091363878    3.507651769    1.110366059    1.7066512],1);
56 VarY=var([YA;YB],1);% S的分母。 计算基于给定的样本总体的方差(EXCEL var.p())
57 for i=1:D
58     for j=1:nPop
59          VarX(i)=VarX(i)+YB(j)*(YAB(j,i)-YA(j));
60     end
61      VarX(i)=1/nPop*VarX(i);
62      S(i)=VarX(i)/VarY;
63 end
64 
65 %% 总效应指数
66 EX=zeros(D,1);
67 ST=zeros(D,1);
68 for i=1:D
69     for j=1:nPop
70          EX(i)=EX(i)+(YA(j)-YAB(j,i))^2;
71     end
72       EX(i)=1/(2*nPop)* EX(i);
73      ST(i)=EX(i)/VarY;
74 end
75 disp('一阶影响指数:S');
76 disp(S);
77 disp('总效应指数:ST');
78 disp(ST);
79 disp('success!');
80 
81 
82 %% 子函数 matlab2016之前不支持子函数写在同一个m文档中
83 function y=myfun(x)
84 y=sin(x(1))+7*(sin(x(2)))^2+0.1*x(3)^4*sin(x(1));
85 end

Sobol全局敏感性分析

标签:end,zeros,%%,敏感性,参数,MATLAB,nPop,sobol,EX
From: https://www.cnblogs.com/liylllove/p/17934313.html

相关文章

  • MATLAB工具箱介绍
    Toolbox工具箱序号工具箱备注 数学、统计与优化 1SymbolicMathToolbox符号数学工具箱2PartialDifferentialEuqationToolbox偏微分方程工具箱3StatisticsToolbox统计学工具箱4CurveFittingToolbox曲线拟合工具箱5OptimizationToolbox......
  • 基于深度学习网络的美食检测系统matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述      美食检测是一项利用计算机视觉技术来识别和分类食物图像的任务。       特征提取是食品检测的核心步骤,其目的是从输入图像中提取出有效的特征,以便于后续的分类。常见的......
  • 基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述      基于FPGA(Field-ProgrammableGateArray)的图像差分运算及目标提取实现主要涉及图像处理、差分运算和目标提取等原理和数学公式。 一、图像处理原理       图像处理是......
  • m基于深度学习网络的美食识别系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       基于深度学习网络的美食识别系统是一个复杂的机器视觉应用,它结合了深度学习、图像处理、模式识别等多个领域的知识。GoogleNet是一种深度卷积神经网络(CNN),它由多个卷积层、池化层......
  • m基于深度学习网络的美食识别系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要基于深度学习网络的美食识别系统是一个复杂的机器视觉应用,它结合了深度学习、图像处理、模式识别等多个领域的知识。GoogleNet是一种深度卷积神经网络(CNN),它由多个卷积层、池化层和全连接层组成。该模型可以自动学......
  • m基于深度学习的OFDM通信系统频偏估计算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:训练曲线:误码率曲线:2.算法涉及理论知识概要正交频分复用(OFDM)是一种高效的无线通信技术,广泛应用于各种无线通信系统。然而,OFDM系统对频率偏移非常敏感,频偏会导致子载波间的正交性丧失,进而产生严重的性能下降。传统的频偏估计方法通常基......
  • m基于深度学习的OFDM通信系统频偏估计算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下: 训练曲线:   误码率曲线:   2.算法涉及理论知识概要        正交频分复用(OFDM)是一种高效的无线通信技术,广泛应用于各种无线通信系统。然而,OFDM系统对频率偏移非常敏感,频偏会导致子载波间的正交性丧失,进而产生严......
  • 基于FPGA的图像PSNR质量评估计算实现,包含testbench和MATLAB辅助验证程序
    1.算法运行效果图预览设置较大的干扰,PSNR=15。   设置较小的干扰,PSNR=25。   2.算法运行软件版本matlab2022a vivado2019.2  3.算法理论概述      基于FPGA的图像PSNR(峰值信噪比)质量评估计算实现涉及到数字图像处理、硬件设计和编程等多个领域......
  • 基于二维小波变换的散斑相位奇异构造算法matlab仿真
    1.算法运行效果图预览         图(1)表示散斑原图像,(2)表示对(1)图像进行x轴方向的极化分析的小波相位图,呈周期的水平条纹,(3)表示对(1)图像进行y轴方向的极化分析的小波相位图,呈周期的竖直条纹。          表示相位奇异点图的构造过程,其中(1)表示......
  • 故障时间线-matlab三联错二联错
    20231211:matlab三联报错20231215:卸载并重装MCR及其补丁中间试过重打MCR补丁、重新封装matlab代码、删除临时目录、将mclmcrrt9_2.dll添加到sysWOW64、重新引用MWARRAY.dll及其他几个文件,都不好使橘子Jane......