拉丁超立方体抽样(LHS)研究(Matlab代码实现)

article/2025/10/25 13:17:22

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码实现

🎉4 参考文献


💥1 概述

拉丁超立方体抽样(LHS)是一种分层随机过程,提供了一种从变量分布中抽样变量的有效方法(Iman和Conover,1980)。LHS涉及从k个变量X1、X2、…Xk中的每一个的规定分布中采样ns值。每个变量的累积分布被划分为N个等概率区间。从每个间隔中随机选择一个值(图1)。为每个变量获得的N个值与其他变量随机配对。与简单的随机抽样不同,该方法通过最大程度地分层每个边际分布,确保了每个变量范围的完全覆盖。

详细文章讲解见第3部分。 

📚2 运行结果

部分代码:

% Coefficients in rational approximations.
   a = [ -3.969683028665376e+01  2.209460984245205e+02 ...
         -2.759285104469687e+02  1.383577518672690e+02 ...
         -3.066479806614716e+01  2.506628277459239e+00 ];
   b = [ -5.447609879822406e+01  1.615858368580409e+02 ...
         -1.556989798598866e+02  6.680131188771972e+01 ...
         -1.328068155288572e+01 ];
   c = [ -7.784894002430293e-03 -3.223964580411365e-01 ...
         -2.400758277161838e+00 -2.549732539343734e+00 ...
         4.374664141464968e+00  2.938163982698783e+00 ];
   d = [  7.784695709041462e-03  3.224671290700398e-01 ...
          2.445134137142996e+00  3.754408661907416e+00 ];

   % Define break-points.
   plow  = 0.02425;
   phigh = 1 - plow;

   % Initialize output array.
   z = zeros(size(p));

   % Rational approximation for central region:
   k = plow <= p & p <= phigh;
   if any(k(:))
      q = p(k) - 0.5;
      r = q.*q;
      z(k) = (((((a(1)*r+a(2)).*r+a(3)).*r+a(4)).*r+a(5)).*r+a(6)).*q ./ ...
             (((((b(1)*r+b(2)).*r+b(3)).*r+b(4)).*r+b(5)).*r+1);
   end

   % Rational approximation for lower region:
   k = 0 < p & p < plow;
   if any(k(:))
      q  = sqrt(-2*log(p(k)));
      z(k) = (((((c(1)*q+c(2)).*q+c(3)).*q+c(4)).*q+c(5)).*q+c(6)) ./ ...
             ((((d(1)*q+d(2)).*q+d(3)).*q+d(4)).*q+1);
   end

   % Rational approximation for upper region:
   k = phigh < p & p < 1;
   if any(k(:))
      q  = sqrt(-2*log(1-p(k)));
      z(k) = -(((((c(1)*q+c(2)).*q+c(3)).*q+c(4)).*q+c(5)).*q+c(6)) ./ ...
             ((((d(1)*q+d(2)).*q+d(3)).*q+d(4)).*q+1);
   end

   % Case when P = 0:
   z(p == 0) = -Inf;

   % Case when P = 1:
   z(p == 1) = Inf;

   % Cases when output will be NaN:
   k = p < 0 | p > 1 | isnan(p);
   if any(k(:))
      z(k) = NaN;
   end

   % The relative error of the approximation has absolute value less
   % than 1.15e-9.  One iteration of Halley's rational method (third
   % order) gives full machine precision.
   k = 0 < p & p < 1;
   if any(k(:))
      e = 0.5*erfc(-z(k)/sqrt(2)) - p(k);          % error
      u = e * sqrt(2*pi) .* exp(z(k).^2/2);        % f(z)/df(z)
      %z(k) = z(k) - u;                             % Newton's method
      z(k) = z(k) - u./( 1 + z(k).*u/2 );          % Halley's method
   end
 

🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。


http://chatgpt.dhexx.cn/article/2LGAM7Bn.shtml

相关文章

linux查看端口和pid

一.查看进程常用操作 netstat说明&#xff1a; netstat命令参数&#xff1a; -t : 指明显示TCP端口   -u : 指明显示UDP端口   -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)   -p : 显示进程标识符和程序名称&#xf…

Linux 查看已使用的端口

指定端口 已开放&#xff1a; 未开放&#xff1a; 查看所有端口 完&#xff01;

Linux查看端口使用情况并开启端口

一、查看端口是否被使用 方法一&#xff1a; lsof -i:8050 方法二 telnet测试命令&#xff1a; telnet ip地址 端口 方法三&#xff1a; netstat -tlnp|grep 8050 方法四&#xff1a;如果是防火墙已开启的状态查看已经开放的端口 firewall-cmd --list-ports 查看防火墙状…

linux查看端口TCP连接情况

netstat -ano | grep 19833 #查看19833端口的连接情况 从上图结果可以分析出一些信息&#xff1a; 1、第一个为服务器的监听套接字&#xff0c;其监听队列中存在两个连接未处理&#xff0c;而整个服务器连接到19833端口的连接才3个。 2、其中源主机端口为37534和37532的…

Linux查询端口命令

一、使用netstat 检查端口 netstat是一个命令行工具&#xff0c;可以提供有关网络连接的信息。 显示所有已开放端口&#xff0c;请使用以下命令&#xff1a;netstat -anp 要列出正在侦听的所有 TCP 或 UDP端口&#xff0c;包括使用端口和套接字状态的服务&#xff0c;请使用以下…

linux 端口号查看

用netstat检查监听端口 sudo netstat -tunlp 此命令中使用的选项具有以下含义&#xff1a; -t-显示TCP端口。 -u -显示UDP端口。 -n -显示数字地址而不是解析主机。 -l -仅显示监听端口。 -p -显示侦听器进程的PID和名称。仅当你以root用户或 sudo 用户身份运行命令时&#xf…

Linux查看端口是否开放

linux查看开放端口的方法&#xff1a; 1. 使用rpm安装nmap工具&#xff0c;执行 "nmap 127.0.0.1" 命令查看本机开放的端口 2. 执行 "netstat -anp" 命令进行查看开放的端口 3. 使用rpm安装slof工具&#xff0c;执行 "lsof -i:8085" 命令查看…

linux如何查看端口被哪个进程占用

亲测可用&#xff0c;若有疑问请私信 本文介绍linux如何查看端口被哪个进程占用的方法&#xff1a; 1、lsof -i:端口号 2、netstat -tunlp|grep 端口号 都可以查看指定端口被哪个进程占用的情况 【步骤一】lsof -i lsof -i 用以显示符合条件的进程情况&#xff0c;lsof(l…

Linux如何查看端口状态

在Linux使用过程中&#xff0c;需要了解当前系统开放了哪些端口&#xff0c;并且要查看开放这些端口的具体进程和用户&#xff0c;可以通过netstat命令进行简单查询 netstat命令各个参数说明如下&#xff1a; -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字…

linux 查看端口状态

netstat -tunlp | grep 端口号 1、netstat -tunlp 是查看所有的在使用的端口号情况 2、netstat -tunlp | grep 端口号是查看所查询的端口号情况 3、netstat -tunlp各个参数说明如下&#xff1a; -t&#xff1a;&#xff08;tcp&#xff09;仅显示TCP相关端口 -u&#xff1a;…

Linux常用查看端口号命令

Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。 注意&#xff1a;lsof 用普通用户--权限等同于root 可以使用&#xff1b;netstat 命令普通用户不行&#xff0c;必须是root用户&#xff0c;sudo netstat lsof lsof (list open files) 是一个列出当前系统打开文件的…

Linux查看端口占用情况的几种方式

概述 测试环境为Centos7.9&#xff0c;本文简单给出了几种检测端口的例子。 一、查看本机端口占用 1、netstat #安装netstat yum -y install net-tools #检测端口占用 netstat -npl | grep "端口"2、lsof #安装lsof yum -y install lsof #检测端口占用 lsof -i …

Linux 查看端口常用命令

大家好啊&#xff0c;我是大田。 有时部署测试环境会发现有启动失败的情况&#xff0c;做压测时需要查询某程序的端口占用情况或者根据端口号查看是哪个程序&#xff0c;同时也是面试中常问的两个命令&#xff0c;今天来记录下&#xff1a; 1、根据程序名称&#xff0c;查找占用…

linux如何查看端口是否开放

linux查看端口是否开放的方法&#xff1a;首先打开端口&#xff0c;切换root用户登录&#xff1b;然后使用【lsof -i:】端口号命令行&#xff1b;最后使用【netstat -aptn】命令行&#xff0c;查看所有开启的端口号。 本教程操作环境&#xff1a;linux7.3系统&#xff0c;DELL…

Linux查看端口详情

无论您是使用 Linux 作为服务器还是桌面环境&#xff0c;了解开放的端口或正在使用的端口在各种情况下都会有所帮助。哪个端口被哪个服务占用&#xff1f;有多少个开放端口&#xff1f;本文介绍如何扫描 Linux 系统或任何远程系统上开放的端口。 例如&#xff0c;如果您正在运…

linux查看服务端口命令大全

目录&#xff1a; 零、 linux怎么查看所有服务端口一、常用命令二、lsof -i 需要 root 用户的权限来执行三、netstat命令四、扩展资料 零、 linux怎么查看所有服务端口 1、打开linux系统&#xff0c;在linux的桌面的空白处右击。 2、在d出的下拉选项里&#xff0c;点击打开终端…

linux查看端口

linux中netstat netstat -a : 将目前系统上所有的连接、监听、socket信息都列出来 -t &#xff1a;列出tcp网络封包的信息 -u &#xff1a;列出udp网络封包的信息 -n &#xff1a;不以进程的服务名称&#xff0c;以端口号来显示 -l &#xff1a;列出目前正在网络监听的服务 -p…

Linux如何查看端口

方法一&#xff1a;lsof -i:端口号 用于查看某一端口的占用情况&#xff0c;比如查看9092端口使用情况&#xff0c;lsof -i:9095 可以看到9095端口已经被nginx占用 方法二&#xff1a;netstat -tunlp |grep 端口号&#xff0c;用于查看指定的端口号的进程情况&#xff0c;如查…

Linux查看端口占用情况

一、查看已知端口占用情况 比如&#xff0c;我们想知道8080端口的使用情况&#xff0c;或者说被谁占用了&#xff0c;命令如下&#xff1a; netstat -anp | grep 8080 结果如下&#xff1a; 也可以使用命令&#xff1a; netstat -tln | grep 8080 结果&#xff1a; 和上个命…