import matplotlib
import matplotlib.pyplot as plt
import numpy as npdef MSE(y1, y2):return np.sum((y1 - y2) ** 2) / len(y1)matplotlib.rcParams['font.family'] = 'YouYuan'  # 幼圆字体
plt.figure("Ur与ln(rb/r)关系曲线", dpi=150)  # 命名绘图窗口plt.figure(),调整清晰度
plt.xlabel("Ur")
plt.ylabel("ln(rb/r)")
plt.title('Ur与ln(rb/r)关系曲线')
plt.grid(color='r', linestyle='--', linewidth=0.5)  # 设置网格
x = np.arange(2, 8, 0.01)
y = 0.2708 * x
plt.plot(x, y)
x = np.arange(2, 9, 1)
y = 0.2708 * xplt.plot(x, y, 'ob')
for xx, yy in zip(x, y):plt.text(xx + 0.2, yy, "{:.3f}".format(yy))  # 添加注解
plt.axis([2, 9, 0.4, 2.4])
plt.show()
y2 = y[::-1]
x = np.array([1.407, 1.8, 2.129, 2.714, 3.229, 3.971, 4.814])
y = np.log(7.5 / x)
print(MSE(y, y2))
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import interp1ddef MSE(y1, y2):return np.sum((y1 - y2) ** 2) / len(y1)matplotlib.rcParams['font.family'] = 'YouYuan'  # 幼圆字体
#
# plt.figure("80cm光伏组件伏安特性曲线", dpi=150)  # 命名绘图窗口
# plt.xlabel("V")
# plt.ylabel("I")
#
# U80 = np.array([0.02, 0.47, 2.05, 3.58, 5.01, 5.69, 6.35, 7.34, 8.36, 8.43, 8.61,
#                 8.64, 8.74, 9.21, 9.29, 9.84, 9.93])
#
# I80 = np.array([77.5, 76.5, 76.3, 75.6, 74.4, 73.5, 72.7, 66.3, 60.7, 44.9, 39.4, 35.2,
#                 29.2, 24.2, 18.9, 11.3, 6.3])
# P80 = [xx * yy for xx, yy in zip(U80, I80)]
# idx = 0
# Pm80 = 0
# for i, p in enumerate(P80):
#     if p > Pm80:
#         idx = i
#         Pm80 = p
# Im80, Um80, Rm80 = I80[idx], U80[idx], U80[idx] / I80[idx]
# print(Im80, Um80, Rm80, end='\n')
# Isc80, Voc80 = 7 / 6 * Im80, 7 / 6 * Um80
# FF80 = Pm80 / Voc80 / Isc80
# print(Isc80, Voc80, FF80, end='\n')
# plt.title('80cm光伏组件伏安特性曲线')
# plt.grid(color='r', linestyle='--', linewidth=0.5)  # 设置网格
#
# xnew = np.linspace(U80.min(), U80.max(), 300)  # 300 represents number of points to make between T.min and T.max
# func = interp1d(U80, I80, kind=1)
# ynew = func(xnew)
# plt.plot(xnew, ynew)
# plt.plot(U80, I80, 'ob')
# i = 0
# for xx, yy in zip(U80, I80):
#     i += 1
#     if i % 2 == 0:
#         plt.text(xx + 0.3, yy + 2, "{:.1f}".format(yy))  # 添加注解
#     else:
#         plt.text(xx - 0.9, yy - 2, "{:.1f}".format(yy))
# plt.axis([0, 10, 0, 100])
# plt.xticks(np.arange(0, 11, 1))
# plt.yticks(np.arange(0, 110, 10))
# plt.show()plt.figure("60cm光伏组件伏安特性曲线", dpi=150)  # 命名绘图窗口
plt.xlabel("V")
plt.ylabel("I")U60 = np.array([0.01, 0.73, 2.09, 2.21, 3.41, 4.72, 5.9, 7.04, 7.75, 8.59, 8.87, 9.15, 9.21,9.23, 9.27, 9.38, 9.48, 9.55, 9.61, 9.66, 9.7, 9.71, 9.77])I60 = np.array([133.2, 132.4, 132.1, 131.7, 131.7, 130.6, 128.7, 126.1, 118.6, 100.3, 84.7,68.2, 63.9, 60, 56.6, 48.6, 39.2, 32.8, 28.3, 24.7, 21.6, 16.4, 14.1])
P60 = [xx * yy for xx, yy in zip(U60, I60)]
idx = 0
Pm60 = 0
for i, p in enumerate(P60):if p > Pm60:idx = iPm60 = p
Im60, Um60, Rm60 = I60[idx], U60[idx], U60[idx] / I60[idx]
print(Im60, Um60, Rm60, end='\n')
Isc60, Voc60 = 7 / 6 * Im60, 7 / 6 * Um60
FF60 = Pm60 / Voc60 / Isc60
print(Isc60, Voc60, FF60, end='\n')
plt.title('60cm光伏组件伏安特性曲线')
plt.grid(color='r', linestyle='--', linewidth=0.5)  # 设置网格xnew = np.linspace(U60.min(), U60.max(), 300)  # 300 represents number of points to make between T.min and T.max
func = interp1d(U60, I60, kind=1)
ynew = func(xnew)
plt.plot(xnew, ynew)
plt.plot(U60, I60, 'ob')
i = 0
for xx, yy in zip(U60, I60):i += 1if i % 2 == 0:plt.text(xx + 0.3, yy + 2, "{:.1f}".format(yy))  # 添加注解else:plt.text(xx - 0.9, yy - 2, "{:.1f}".format(yy))
plt.axis([0, 10, 0, 140])
plt.xticks(np.arange(0, 11, 1))
plt.yticks(np.arange(0, 150, 10))
plt.show()
import matplotlib
import matplotlib.pyplot as plt
import numpy as npdef MSE(y1, y2):return np.sum((y1 - y2) ** 2) / len(y1)matplotlib.rcParams['font.family'] = 'YouYuan'  # 幼圆字体
plt.figure("改装电流表的校正曲线2", dpi=150)  # 命名绘图窗口plt.figure(),调整清晰度
plt.xlabel("改装表读数")
plt.ylabel("示值误差△I")
plt.title('改装电流表的校正曲线2')
plt.grid(color='r', linestyle='--', linewidth=0.5)  # 设置网格
x = np.arange(0.2, 1.2, 0.2)
y = [0.008, 0.0055, 0.001, 0.007, 0.006]
plt.plot(x, y)
plt.plot(x, y, 'ob')
for xx, yy in zip(x, y):plt.text(xx, yy+0.0005, "{:.3f}".format(yy))  # 添加注解
plt.axis([0.2, 1, 0.001, 0.009])
plt.show()
import matplotlib
import matplotlib.pyplot as plt
import numpy as npdef MSE(y1, y2):return np.sum((y1 - y2) ** 2) / len(y1)matplotlib.rcParams['font.family'] = 'YouYuan'  # 幼圆字体
# plt.figure("Im和磁感应强度B的关系曲线", dpi=150)  # 命名绘图窗口plt.figure(),调整清晰度
# plt.xlabel("Im")
# plt.ylabel("B")
# plt.title('Im和磁感应强度B的关系曲线')
# plt.grid(color='r', linestyle='--', linewidth=0.5)  # 设置网格
# x = np.arange(50, 550, 50)
# U = [2.526, 2.549, 2.572, 2.595, 2.618, 2.64, 2.663, 2.685, 2.708, 2.731]
# y = [(i - 2.5) / 31.25 *1000 for i in U]
# plt.plot(x, y, 'ob')
# plt.plot(x, y)
# for xx, yy in zip(x, y):
#     plt.text(xx + 15, yy-0.1, "{:.3f}".format(yy))  # 添加注解
# plt.axis([0, 500, 0, 8])
# plt.xticks(np.arange(0, 600, 50))
# plt.yticks(np.arange(0, 8.5, 0.5))
# plt.show()plt.figure("磁感应强度B(x)随位置x的关系曲线", dpi=150)  # 命名绘图窗口plt.figure(),调整清晰度
plt.xlabel("x")
plt.ylabel("B")
plt.title('磁感应强度B(x)随位置x的关系曲线')
plt.grid(color='r', linestyle='--', linewidth=0.5)  # 设置网格
x = np.arange(-14, 16, 1)
U = [2.525, 2.547, 2.577, 2.599, 2.609, 2.613, 2.615, 2.616, 2.617, 2.618,2.618, 2.618, 2.618, 2.618, 2.618, 2.618, 2.618, 2.618, 2.618, 2.617,2.617, 2.616, 2.616, 2.615, 2.613, 2.608, 2.598, 2.574, 2.542, 2.523]
U2 = [1.8083, 2.7158, 3.1713, 3.33695, 3.464, 3.5143,3.5433,3.5613, 3.573, 3.5808, 3.5858, 3.589, 3.5907, 3.5915]
t = U2[::-1]
U2 += t
y = ["{:.3f}".format(1000 * (i - 2.5) / 31.25) for i in U]
y = [float(i) for i in y]
plt.plot(x, y, 'ob')
plt.plot(x, y)
i = 0
print(y)
for xx, yy in zip(x, y):i += 1if i % 2 == 0:plt.text(xx, yy-0.15, "{:.1f}".format(yy))  # 添加注解else:plt.text(xx, yy+0.08, "{:.1f}".format(yy))
x = np.arange(-13, 15, 1)
plt.plot(x, U2, 'or')
plt.plot(x, U2, 'k')
plt.axis([-15, 16, 0, 4])
plt.xticks(np.arange(-15, 16, 1))
plt.yticks(np.arange(0, 4, 0.5))
plt.show()
#
# plt.figure("亥姆霍兹线圈轴线上磁场分布的实验曲线", dpi=150)  # 命名绘图窗口plt.figure(),调整清晰度
# plt.xlabel("x")
# plt.ylabel("B")
# # plt.title('载流圆线圈轴线上磁场分布的实验曲线')
# plt.grid(color='r', linestyle='--', linewidth=0.5)  # 设置网格
# x = np.arange(-10, 11, 1)
# B = [1.345, 1.507, 1.692, 1.862, 2.012, 2.135, 2.217, 2.254, 2.243, 2.191, 2.093,
#      1.963, 1.8, 1.63, 1.446, 1.271, 1.107, 0.982, 0.822, 0.717, 0.617]
# plt.plot(x, B, 'ob')
# plt.plot(x, B)
# i = 0
# print(B)
# for xx, yy in zip(x, B):
#     i += 1
#     if i % 2 == 0:
#         plt.text(xx, yy - 0.01, "{:.3f}".format(yy))  # 添加注解
#     else:
#         plt.text(xx, yy + 0.01, "{:.3f}".format(yy))
# x = np.arange(-13, 15, 1)
# plt.show()

用Python画大学物理实验曲线相关推荐

  1. 大学物理实验——密立根油滴实验数据计算Python代码

    大学物理实验--密立根油滴实验数据计算Python代码 先手准备 import numpy as np 编写函数 def f(t,U):# 基本物理量准备rou = 981.0g = 9.80l = ...

  2. 大学物理实验 载流圆线圈轴线上的磁场分布

    大学物理实验 载流圆线圈轴线上的磁场分布 首先说好,本宝宝不定期更新 另外,代码写的比较冗杂,需要拿走,不喜勿喷. 考虑到有可能会有不太精通Python的朋友,首先是说好,本代码仅支持Jupyter ...

  3. 青岛科技大学c语言实验报告,青岛科技大学大学物理实验报告

    青岛科技大学大学物理实验报告Tag内容描述: 1.北京科技大学实验报告 磁场分布 实验目的 原理及实验步骤 见预习报告 实验数据 附后 及其处理 1 不同磁极头间隙内的磁场分布特点 情形如图所示 根据 ...

  4. 大学物理实验长度的测量实验报告_大学物理实验长度的测量实验总结

    大学物理实验是一整套科学缜密的实验方法,有着十分重要的意义.在学习大学物理这个课程之后,可以分享学习方法.今天小编整理了,希望对你有帮助.篇一经过一年的大学物理实验的学习让我受益菲浅.在大学物理实验课 ...

  5. 【大学物理实验】绪论练习

    文章目录 选择题 选择题 <大学物理实验>实验报告册的封面,以下说法不正确的是: A. 应正确填写完整的学号 B. 预习前应写好姓名等相关信息 C. 报告册左上角应填写本班级报告箱编号 D ...

  6. (搬运)大学物理实验理论部分知识点)

    (搬运)大学物理实验理论部分知识点 零.前言 一.误差的概念 1. 实际具有值,记为A--真值 2. 绝对误差 3. 相对误差 4. 误差的分类 1) 系统误差 2)随机误差 3) 粗大误差 5.随机 ...

  7. 大学物理实验试卷1到8_大学物理实验模拟试题123《试题》

    大学物理实验模拟试题 一.填空题 1. 正常测量的误差按产生的原因和性质可以分为两类,分别是系统误差随机误差. 2. 对于不连续读数的仪器,如数字秒表.分光计等,就以最小分度作为仪器误差. 3. 在实 ...

  8. 物理实验计算机仿真单摆实验,大学物理实验仿真实验实验报告.doc

    仿真实验 (单摆测重力加速度和单透镜焦距的测定) 引言 随着计算机应用的普及,在各个应用领域都采用计算机设计和仿真,在大学物理实验课教学中,除了实际操作外还可以进行计算机仿真实验,对有些内容采用仿真实 ...

  9. [省级大创项目]教育类APP的探索和实践——大学物理实验助手APP开发

    立项依据(项目背景及研究现状500字以内) 通过网上问卷等形式做了前期调研,网上问卷由问卷星提供技术支持,共有348份答卷,问卷链接为很抱歉,此问卷(12931895)已暂停,不能填写!. (1)通过 ...

最新文章

  1. 表格td超出部分隐藏,显示...
  2. 关于PyCharm无法启动的问题
  3. DTS和PTS的解释(FFMPEG、HLS相关)
  4. 关于使用在webforms里使用routing遇到的问题
  5. [Swift通天遁地]一、超级工具-(2)制作美观大方的环形进度条
  6. ORA-27101 shared memory realm does not exist 错误处理
  7. java离职证明模板_如何写出月薪过万的Java开发简历-附加模板
  8. Java架构-面试怎么谈薪资——让自己的利益最大化
  9. vue-cli3.0相关的坑
  10. Java 常用的 4 种加密方式(MD5+Base64+SHA+BCrypt)
  11. 9)Thymeleaf ⼯具类对象表达式
  12. 伍楼阁使用的WordPress代码高亮插件使用说明
  13. 最新出炉!java私塾下载
  14. android打印机驱动4521,三星scx4521f驱动下载
  15. 360浏览器极速模式pdf文件不能预览问题
  16. java文字水印换行_Java实现图片水印文字换行、平铺、旋转效果-Go语言中文社区...
  17. WIN32 opengl缩放、旋转、移动图形
  18. (centos7-x86)编译安装zabbix6.0LTS+Mariadb10.5+Apache+php7.4【安装完整版】
  19. 51CTO学院 c++视频
  20. python tfidf特征变换_Python中的TfidfVectorizer参数解析

热门文章

  1. 深信服上网行为管理如何配置双因素/双因子(2FA)身份认证
  2. 缺氧游戏 不给计算机加水,缺氧中的物理学攻略 温度/装饰/水压/热导图文详解...
  3. Python——矩阵求逆、矩阵的转置
  4. GPON ITU-T G.xxx 标准协议下载
  5. 华硕vm510l最大支持多大内存_华硕vm510l与w519l区别
  6. USACO1996《修理牛棚》解题报告
  7. mikumikudance[MMD]快捷键使用
  8. 案例分享——智能手表(全套解决方案:生理监测、久坐提醒、来电提醒、OTA、无线通信、语音播报、长时间待机等)
  9. BERT: 理解上下文的语言模型
  10. discuz7.2sql注入漏洞