当前位置: 首页 > 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.gsyq.cn/news/1496008.html

相关文章:

  • ChatGPT“锁定模式”全面开放:防数据窃取但有操作限制,用还是不用?
  • 如何将音乐从荣耀手机传输到荣耀手机?
  • 基于MC13145/46芯片组的FSK全双工无线数据链路设计与实现
  • 从用户体验出发:聊聊Vue项目里Loading动画的那些‘坑’与最佳实践(含性能优化)
  • Scrape Center SSR1爬虫实战:从数据抓取到自动生成电影数据分析报告
  • 如何快速掌握Akagi麻将AI助手:新手的完整入门指南
  • 婴儿游泳行业安全事故频发:场所安全与产品安全责任交叉
  • 解密分布式视频监控:WVP-GB28181-Pro的突破性架构设计
  • 嵌入式开发必读:从K10数据手册解析外设电气规格与通信时序设计
  • 51单片机双路超声波侧向防撞系统:带LCD实时显示、阈值调节与Proteus可仿真工程
  • 技术社区的ROI:如何科学选择Discord开发者社区最大化你的成长回报
  • 118、飞控中的通信协议:MAVLink详解
  • 读多写少?别急着上 QReadWriteLock,项目里可能更慢
  • 一款简单好用的课程表制作工具,学生和教师都适用
  • Cyera 披露 protobuf.js 六个漏洞,波及软件供应链,建议打补丁应对
  • 别再为GEE注册发愁了!手把手教你搞定Google Earth Engine账号(附最新手机验证解决方案)
  • 软考网络工程师备考:用eNSP搞定华为设备实验,从静态路由到防火墙配置保姆级教程
  • 终于等到!2026免费PDF转换器全功能详解:转Word、转Excel、转PPT、转图片、压缩,一篇足够 - 时时资讯
  • 《全域数学》第一部·数术 第五卷 算子数学与泛函原本
  • G-Helper终极降压指南:AMD CPU温度直降15℃的完整解决方案
  • Meta 漏洞致 20225 个 Instagram 账户被劫持,知名账号受影响
  • 大模型高薪就业指南:小白也能入门的AI黄金赛道,速收藏!
  • APK版本选择完全指南——beta/stable/arm64/x86/bundle/universal怎么选?
  • 苏州姑苏区高新技术企业认定的条件和优惠政策
  • GhostTrack终极指南:如何通过开源工具实现精准数字追踪
  • NXP S12X微控制器XGATE驱动库实战:资源评估与集成指南
  • 论文党必备:手把手教你用MathType为Word公式添加‘右编号’,从此引用公式不再愁
  • Kaiwa: 一个开源的WebRTC聊天应用,让沟通更自由
  • AI基础设施与传统基础设施的区别:程序员如何将技术栈和方法论迁移至AI系统架构设计(收藏版)
  • 告别信号干扰!LVDS差分信号PCB布局布线实战避坑指南(附SI9000阻抗计算)