You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenTURNS中如何计算两独立正态随机变量的min(X,Y)并嵌入公式

在OpenTURNS中计算min(X,Y)的完整分布并嵌入复杂公式

步骤1:定义独立正态随机变量与联合分布

首先创建两个独立的正态分布,并组合成联合分布:

import openturns as ot

# 定义X和Y的正态分布参数
mu_x, sigma_x = 0.0, 1.0
mu_y, sigma_y = 1.0, 2.0
dist_x = ot.Normal(mu_x, sigma_x)
dist_y = ot.Normal(mu_y, sigma_y)

# 构建独立变量的联合分布
joint_dist = ot.ComposedDistribution([dist_x, dist_y])

步骤2:生成min(X,Y)的随机向量与分布

通过符号函数定义min(X,Y)的计算逻辑,再基于联合分布的随机向量生成对应的复合随机向量,即可直接获取其分布:

# 定义计算min(X,Y)的符号函数
min_func = ot.SymbolicFunction(["x", "y"], ["min(x,y)"])

# 创建联合分布对应的随机向量
joint_rv = ot.RandomVector(joint_dist)

# 生成min(X,Y)的复合随机向量
min_rv = ot.CompositeRandomVector(min_func, joint_rv)

# 获取min(X,Y)的分布
min_dist = min_rv.getDistribution()

步骤3:将min(X,Y)嵌入复杂公式

直接在符号函数中写入包含min(X,Y)的复杂表达式,重复复合随机向量的生成逻辑即可得到最终结果的分布:

# 示例复杂公式:Z = 3*min(X,Y) + X² - Y
complex_func = ot.SymbolicFunction(["x", "y"], ["3*min(x,y) + x^2 - y"])

# 生成复杂公式对应的随机向量
complex_rv = ot.CompositeRandomVector(complex_func, joint_rv)

# 获取最终结果的分布
complex_dist = complex_rv.getDistribution()

步骤4:绘制PDF

利用OpenTURNS内置的drawPDF()方法直接绘制分布的概率密度函数;若需要更平滑的近似结果,可结合核平滑方法处理采样数据:

# 绘制min(X,Y)的PDF
min_pdf_plot = min_dist.drawPDF()
min_pdf_plot.setTitle("PDF of min(X,Y)")
min_pdf_plot.draw("min_pdf.png")  # 保存图像或直接显示

# 绘制复杂公式结果的PDF(基础版本)
complex_pdf_plot = complex_dist.drawPDF()
complex_pdf_plot.setTitle("PDF of Complex Formula Result")
complex_pdf_plot.draw("complex_pdf.png")

# 核平滑优化PDF(适用于复杂公式的近似分布)
sample_size = 10000
complex_sample = complex_rv.getSample(sample_size)
kernel_smoother = ot.KernelSmoothing()
smoothed_complex_dist = kernel_smoother.build(complex_sample)
smoothed_complex_dist.drawPDF().draw("complex_pdf_smoothed.png")

补充说明

对于独立连续随机变量,min(X,Y)的CDF具有解析形式:F_min(z) = 1 - (1 - F_X(z))(1 - F_Y(z))(其中F_X、F_Y分别为X、Y的CDF)。OpenTURNS的CompositeRandomVector会自动推导这类简单函数的解析分布;对于更复杂的组合公式,默认会通过蒙特卡洛采样生成近似分布,可通过调整采样数量提升精度。

内容的提问来源于stack exchange,提问作者Nika Tsereteli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 06:35:26