动力学法测量金属弹性模量

🏫中南民族大学-⚛大学物理实验2-📠通信工程2024

目录

Python代码

1. 绘制图像

2. 弹性模量数值计算

 图像显示


Pycharm + 豆包 MarsCode 非常强大!有了它们,我在处理大学物理实验的数据及其可视化就非常方便,极大缩减了我的学习成本。Excel 也能绘图但是不够灵活,MatplotlibSeaborn等Python库能减少计算量,提供更加多样化的选择👍。

Python代码

1. 绘制图像

# 动力学法测量金属的弹性模量
# 绘图
import math
import numpy as np
import seaborn as sns
import matplotlib.pyplot as pltd1 = [5.980, 5.985, 5.985, 5.989, 5.985, 5.985]
d2 = [5.805, 5.795, 5.795, 5.781, 5.783, 5.785]# 计算平均值
mean_d1 = np.mean(d1)
mean_d2 = np.mean(d2)
print(f"数据集d1的平均值为:{mean_d1:.3f}")
print(f"数据集d2的平均值为:{mean_d2:.3f}\n")# 计算标准差
standard_deviation_d1 = np.std(d1, ddof=1)
standard_deviation_d2 = np.std(d2, ddof=1)
print(f"数据集d1的标准差为:{standard_deviation_d1:.3f}")
print(f"数据集d2的标准差为:{standard_deviation_d2:.3f}\n")# 计算不确定度
Ud1 = math.sqrt(standard_deviation_d1 ** 2 + 0.004 ** 2)
Ud2 = math.sqrt(standard_deviation_d2 ** 2 + 0.004 ** 2)
print(f"数据集d1的不确定度为:{Ud1:.3f}")
print(f"数据集d2的不确定度为:{Ud2:.3f}\n")# x/l
l = 180.05
x = [25, 30, 35, 42.5, 45, 50, 55]
# 计算x/l
x_l = []
for i in range(len(x)):x_l.append(x[i] / l)print(f"x/l_{i + 1}={x_l[i]:.3f}", end="     ")# 频率
f_Cu = [610.560, 610.401, 610.010, 609.751, 609.880, 610.320, 612.090]
f_Al = [819.021, 816.581, 815.411, 814.761, 814.901, 815.731, 817.411]# 绘制散点图
plt.figure(figsize=(12, 6))# 第一个子图:x_l 和 f_Cu
plt.subplot(1, 2, 1)
sns.scatterplot(x=x_l, y=f_Cu, label='Cu')# 用二次曲线拟合数据
# 我们使用 numpy 的 polyfit 函数来拟合二次曲线
coefficients = np.polyfit(x_l, f_Cu, 2)
# 得到x/l=0.224的频率
a, b, c = coefficients
# 计算 x/l=0.224 时的 f_Al 值
x_0224 = 0.224
f_Cu_0224 = a * x_0224 ** 2 + b * x_0224 + c
# 输出结果
print(f"The value of f_Cu at x/l=0.224 is: {f_Cu_0224:.3f}")# 生成拟合曲线的 x 值
x_fit = np.linspace(min(x_l), max(x_l), 100)
# 根据拟合曲线的系数计算 y 值
y_fit = np.polyval(coefficients, x_fit)# 绘制拟合曲线
sns.lineplot(x=x_fit, y=y_fit, color='#B5A642', label='Quadratic Fit')# 标注 x/l = 0.224 的点
plt.scatter(0.224, f_Cu_0224, color='green', marker='o', s=100, label='x/l = 0.224')
# 添加注释显示坐标
plt.annotate(f'({0.224}, {f_Cu_0224:.3f})', xy=(0.224, f_Cu_0224), xytext=(0.224, f_Cu_0224 - 0.1))plt.title('Scatter Plot of x/l vs. f_Cu with Quadratic Fit')
plt.xlabel('x/l', fontweight='bold')
plt.ylabel('f_Cu/Hz', fontweight='bold')
plt.legend()
plt.grid(True)# 第二个子图:x_l 和 f_Al
plt.subplot(1, 2, 2)
sns.scatterplot(x=x_l, y=f_Al, label='Al')# 用二次曲线拟合数据
# 我们使用 numpy 的 polyfit 函数来拟合二次曲线
coefficients = np.polyfit(x_l, f_Al, 2)
# 得到x/l=0.224的频率
a, b, c = coefficients
# 计算 x/l=0.224 时的 f_Al 值
x_0224 = 0.224
f_Al_0224 = a * x_0224 ** 2 + b * x_0224 + c
# 输出结果
print(f"The value of f_Al at x/l=0.224 is: {f_Al_0224:.3f}")# 生成拟合曲线的 x 值
x_fit = np.linspace(min(x_l), max(x_l), 100)
# 根据拟合曲线的系数计算 y 值
y_fit = np.polyval(coefficients, x_fit)# 绘制拟合曲线
sns.lineplot(x=x_fit, y=y_fit, color='grey', label='Quadratic Fit')# 标注 x/l = 0.224 的点
plt.scatter(0.224, f_Al_0224, color='green', marker='o', s=100, label='x/l = 0.224')
# 添加注释显示坐标
plt.annotate(f'({0.224}, {f_Al_0224:.3f})', xy=(0.224, f_Al_0224), xytext=(0.224, f_Al_0224 - 0.15))plt.title('Scatter Plot of x/l vs. f_Al with Quadratic Fit')
plt.xlabel('x/l', fontweight='bold')
plt.ylabel('f_Al/Hz', fontweight='bold')
plt.legend()
plt.grid(True)# 调整子图布局
plt.tight_layout()# 显示图形
plt.show()

2. 弹性模量数值计算

# 动力学法测量计算金属弹性模量
# 数值计算# 弹性模量
# Cu
# l = 180.1 * 1e-3
# m = 42.46 * 1e-3
# d = 5.985 * 1e-3
# f = 609.708# Al
l = 180.0 * 1e-3
m = 13.25 * 1e-3
d = 5.791 * 1e-3
f = 814.722E = 1.6067 * pow(l, 3) * m * pow(f, 2) / pow(d, 4)# 不确定度
# Cu
# Ul = 0.02 * 1e-3
# Um = 0.01 * 1e-3
# Ud = 0.005 * 1e-3
# Uf = 0.0005# Al
Ul = 0.02 * 1e-3
Um = 0.01 * 1e-3
Ud = 0.010 * 1e-3
Uf = 0.0005temp = pow(3 / l, 2) * pow(Ul, 2) + pow(1 / m, 2) * pow(Um, 2) + pow(4 / d, 2) * pow(Ud, 2) + pow(2 / f, 2) * pow(Uf, 2)
U = E * pow(temp, 1 / 2)print(f"弹性模量为:{E}")
print(f"不确定度为:{U}")

 

 图像显示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/61324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙的数据存储API存储和读

数据处理: 使用鸿蒙的数据存储API存储和读 随着智能设备的日益普及,高效、安全地管理设备上的数据成为开发者的首要任务。鸿蒙操作系统(HarmonyOS)作为一款面向未来的全场景分布式操作系统,提供了丰富的API支持,其中数…

NLP论文速读(EMNLP 2024)|动态奖励与提示优化来帮助语言模型的进行自我对齐

论文速读|Dynamic Rewarding with Prompt Optimization Enables Tuning-free Self-Alignment of Language Models 论文信息: 简介: 本文讨论的背景是大型语言模型(LLMs)的自我对齐问题。传统的LLMs对齐方法依赖于昂贵的训练和人类偏好注释&am…

计算机中的网络安全

在本篇中介绍了以下几个方面: 机密性 密码学 对称加密算法(DES, 3DES, AES) 公开秘钥算法 RSA大素数的获取 完整性 散列函数(MD5, SHA-1, 并没有提及算法实现) 报文鉴别(MAC) 数字签名 端点鉴别 应用 SSL(TCP网络安全) 运行时安全 防火墙的基本知识 主要体现在以下几个方…

SLM561A系列60V10-50mA单通道线性恒流LED驱动芯片,为汽车照明、景观照明助力

SLM561A系列选型参考: SLM561A10ae-7G SOD123 SLM561A15ae-7G SOD123 SLM561A20ae-7G SOD123 SLM561A25ae-7G SOD123 SLM561A30ae-7G SOD123 SLM561A35ae-7G SOD123 SLM561A40ae-7G SOD123 SLM561A45ae-7G SOD123 SLM561A50ae-7G SOD123 S…

golang操作mysql基础驱动github.com/go-sql-driver/mysql使用

golang中类似java操作mysql的jdbc一样,github.com/go-sql-driver/mysql也为go提供了基础接口,在开发中往往需要写更多的代码来满足自己的定制需求,java在驱动基础上有了扩展,orm框架诞生,mybatis、jpa等都是好用的扩展…

RabbitMQ1:初识MQ

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

父组件提交时让各自的子组件验证表格是否填写完整

项目场景: 提示:这里简述项目相关背景: 父组件中有三个表格,表格中时输入框,有些输入框是必填的,在父组件提交时需要验证这三个表格的必填输入框中是否有没填写的。 原因分析: 提示&#xff1a…

Siglus引擎 Unpack | 未完待续

前言 未完待续。 代码在这里:https://github.com/N0zoM1z0/SiglusEngine-Extract 以后随时会更新。() 因为我是选择直接逆向游戏引擎,在无源码,不hook的情况下硬逆Siglus…… 路漫漫。。。 read.sav 可以直接逆Sigl…

黑马嵌入式开发入门模电基础学习笔记

学习视频: 黑马程序员嵌入式开发入门模电(模拟电路)基础 文章目录 背景介绍电流电压组件仿真三极管ne555PCBEDA案例:非接触式电笔案例:电子琴 背景介绍 电流 电压 组件 仿真 三极管 mos管 ne555 PCB EDA 案例:非接触…

centos7安装Chrome使用selenium-wire

背景:在centos7中运行selenium-wire爬虫,系统自带的Firefox浏览器不兼容,运行报错no attribute ‘set_preference’,应该是selenium-wire和Firefox的驱动不兼容 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上…

C++设计模式:抽象工厂模式(风格切换案例)

抽象工厂模式(Abstract Factory)是一种创建型设计模式,其核心思想是:为一组相关或相互依赖的对象提供一个创建接口,而无需指定它们具体的类。简单来说,就是一个工厂可以生产一系列相关的对象。 我们接下来…

Oracle数据库安全扫描1158/3938端口出现弱SSL加密算法解决方法之一

问题复述 某国企项目现场反应安全扫描出部署某历史项目的Windows服务器上的1158及3938两个端口出现了弱SSL加密算法漏洞,要求整改。 经过核实,该Windows服务器上部署了tomcat与Oracle 11g数据库,其中1158和3938两个端口均为Oracle数据库所使…

linux 中mysql查看慢日志

1、到mysql容器,先登录到数据库,查看是否开启 mysql -h 127.0.0.1 -uroot -p SHOW VARIABLES LIKE slow_query_log; 2、如果没有开启,需要先开启 set global slow_query_log ON; 3、查看慢日志文件 SHOW VARIABLES LIKE slow_query_log…

从0开始机器学习--Day30--异常检测算法

异常检测算法(Anomaly detection algorithm) 我们定义异常检测算法的输出,也写作,这里的每一项括号内代表的是每个特征都符合各自的高斯分布(也就是正态分布),代表均值,决定了模型的中心位置;代…

[数组二分查找] 0209. 长度最小的子数组

文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接 209. 长度最小的子数组 - 力扣(LeetCode) 2. 题目大意 描述:给定一个只包含正整数的数组 nums 和一个正整数 target。 要求:找出数组中满足和大于等…

架构图解析:如何构建高效的微服务系统

在当今的数字化浪潮中,构建高效、灵活且可扩展的系统已成为企业的重要目标。微服务架构作为一种先进的软件设计模式,通过将复杂的应用程序分解为一系列小型、独立的服务,显著提升了系统的灵活性、可扩展性和维护性。本文将通过解析微服务系统…

排序排序的概念及其运用和选择排序

排序排序的概念及其运用和选择排序 7. 排序7.1 排序的概念及其运用7.2 选择排序算法——直接选择排序选择排序基本思想:直接选择排序选择排序原理参考程序 如何交换数据直接选择排序的特性总结: 7. 排序 7.1 排序的概念及其运用 排序:所谓排…

centos和ubuntu有什么区别?

CentOS与Ubuntu的区别在于以下几个方面:1、源码基础不同;2、设计理念不同;3、使用场景不同;4、软件包管理不同;整体上看,CentOS更倾向于企业级服务器应用,稳定性较强;而Ubuntu更注重…

Websocket如何分块处理数据量超大的消息体

若我们服务端一次性最大处理的字节数是1M,而客户端发来了2M的数据,此时服务端的数据就要被切割成两次传输解码。Http协议中有分块传输,而在Websocket也可以分块处理超大的消息体。在jsr356标准中使用javax.websocket.MessageHandler.Partial可以分块处理…

ELMo模型介绍:深度理解语言模型的嵌入艺术

ELMo模型介绍:深度理解语言模型的嵌入艺术 引言 在自然语言处理(NLP)领域,词嵌入(word embedding)是将词汇或短语从词汇表映射到向量的数学表示,这些向量能够捕捉词汇之间的语义和语法关系。E…