当前位置: 首页 > news >正文

sn曲线三维图形

image


import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 中文、负号显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# ===================== 基础参数 =====================
np.random.seed(123)
group_num = 5        # 5个应力等级
point_num = 5        # 每个应力5个试验样本# 标准正态分位数 z 值
z10 = -1.282
z50 = 0.0
z90 = 1.282# Y轴:应力等级 S
s_levels = np.array([1, 2, 3, 4, 5])
# 对数正态分布参数 (ln(N) ~ N(mu, sigma²))
mu_list = np.array([2.1, 1.8, 1.5, 1.1, 0.7])
sigma_list = np.array([0.22, 0.20, 0.18, 0.16, 0.14])
colors = ['red', 'green', 'blue', 'orange', 'purple']# 存储理论分位寿命值
n_10 = []
n_50 = []
n_90 = []# ===================== 创建3D画布 =====================
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection='3d')for i in range(group_num):s = s_levels[i]mu = mu_list[i]sigma = sigma_list[i]c = colors[i]# 1. 计算对数正态理论分位数q10 = np.exp(mu + z10 * sigma)q50 = np.exp(mu + z50 * sigma)q90 = np.exp(mu + z90 * sigma)n_10.append(q10)n_50.append(q50)n_90.append(q90)# 2. 生成对数正态试验样本点 (Z=0 平面)n_points = np.random.lognormal(mean=mu, sigma=sigma, size=point_num)s_points = np.full_like(n_points, s)z_points = np.zeros_like(n_points)ax.scatter(n_points, s_points, z_points, c=c, s=120, alpha=0.7, label=f'应力等级 {i+1}')# 3. 绘制对数正态概率密度曲线(取合理范围,保留少量尾部)x_left = np.exp(mu - 2.5 * sigma)x_right = np.exp(mu + 2.5 * sigma)n_curve = np.linspace(x_left, x_right, 200)s_curve = np.full_like(n_curve, s)# 对数正态概率密度公式pdf = (1 / (n_curve * sigma * np.sqrt(2 * np.pi))) * \np.exp(-(np.log(n_curve) - mu) ** 2 / (2 * sigma ** 2))z_curve = pdfax.plot(n_curve, s_curve, z_curve, c=c, linewidth=3, alpha=0.6)# ===================== 绘制分位点平滑连线(SN平面 Z=0) =====================
ax.plot(n_10, s_levels, np.zeros_like(s_levels),color='black', linestyle='--', linewidth=2, label='10% 分位曲线')
ax.plot(n_50, s_levels, np.zeros_like(s_levels),color='black', linestyle='-', linewidth=3, label='50% 中位数曲线')
ax.plot(n_90, s_levels, np.zeros_like(s_levels),color='black', linestyle='--', linewidth=2, label='90% 分位曲线')# ===================== 坐标轴与标题 =====================
ax.set_xlabel('寿命 N', fontsize=12)
ax.set_ylabel('应力 S', fontsize=12)
ax.set_zlabel('概率密度', fontsize=12)
ax.set_title('SN三维分布 | 对数正态分布 + 理论分位平滑曲线', fontsize=14)ax.legend(loc='upper left')
plt.tight_layout()
plt.show()
```pyhton
http://www.jsqmd.com/news/984266/

相关文章:

  • 别再死记硬背语法了!用OpenModelica 1.9.0+玩转单摆仿真,5分钟理解Modelica的‘无因果’建模
  • ChatGPT“锁定模式”全面开放:防数据窃取但有操作限制,用还是不用?
  • Java AI 应用开发笔记:从 CRUD 到 RAG、Tool Calling、MCP、Agent,收藏这份系统学习指南!
  • 如何将音乐从荣耀手机传输到荣耀手机?
  • 相机帧率标得很高,为什么一上产线就跑不满?
  • 基于MC13145/46芯片组的FSK全双工无线数据链路设计与实现
  • 不止是安装:用PyQt5-tools和Qt Designer,在Windows 11上5分钟拖出一个可运行的GUI界面
  • 从用户体验出发:聊聊Vue项目里Loading动画的那些‘坑’与最佳实践(含性能优化)
  • 正规钢结构楼梯直销厂家行业分析:技术实力、交付能力与定制化服务的多维度对比 - 优质品牌商家
  • 2026年6月知名的上海地下室车库防水厂家口碑推荐:地下室防水材料、施工方案、防水卷材、防水涂料选购指南 - 海棠依旧大
  • 2026实测:专业降AI率平台选它准没错
  • Scrape Center SSR1爬虫实战:从数据抓取到自动生成电影数据分析报告
  • 如何快速掌握Akagi麻将AI助手:新手的完整入门指南
  • 大模型辅助的 SQL 注入检测与安全审计:从规则匹配到语义理解
  • 如何将音乐从一部itel手机传输到另一部itel手机
  • 2026珠海管道疏通公司TOP5深度测评|正规靠谱疏通团队全方位透彻推荐 - 园子一号
  • 婴儿游泳行业安全事故频发:场所安全与产品安全责任交叉
  • 从零到出图:手把手教你用MapChart 2.32绘制第一篇论文的遗传连锁图(含示例代码详解)
  • 解密分布式视频监控:WVP-GB28181-Pro的突破性架构设计
  • 如何将音乐从 OnePlus 手机传输到 OnePlus手机
  • 嵌入式开发必读:从K10数据手册解析外设电气规格与通信时序设计
  • 技术社区的ROI:如何科学选择Discord开发者社区最大化你的成长回报
  • i.MX 6硬件设计实战:电气特性与引脚配置避坑指南
  • 51单片机双路超声波侧向防撞系统:带LCD实时显示、阈值调节与Proteus可仿真工程
  • 2026年6月值得信赖的黑龙江水处理设备公司推荐:反渗透、软化水、污水处理设备厂家选择指南 - 海棠依旧大
  • 告别格式烦恼!2026免费PDF转换器保姆级攻略:转Excel、转PPT、转图片、压缩,一看就会 - 时时资讯
  • 118、飞控中的通信协议:MAVLink详解
  • 读多写少?别急着上 QReadWriteLock,项目里可能更慢
  • 不只是‘Hello World’:用PyQt5-tools的Designer快速拖拽一个简易计算器UI
  • 如何免费获得专业剧本创作工具:Trelby跨平台剧本写作软件完整指南