4用V=10v的电池给电容充电,电容上t时刻V-(V-V0)e(-t/T),尝试由数据确定V0和T静电常量

解题思路

一:题目

二:思路

开发环境

代码及效果

一:代码

二:效果


解题思路

一:题目

4用电压V=10v的电池给电容充电,电容上t时刻的电压为v(t)=V-(V-V0)_{e}(\frac{-t}{\tau }),其中V0是电容的初始电压,\tau是充电常数,是由下列数据确定V0和\tau

t/s0.51234579
v/V6.366.487.268.228.668.999.439.63

二:思路

根据所给的数据,使用分析函数的特征使用插值与拟合方法来,获得函数图像与函数表达式,并评估模型的接近程度,从而带入参数获得V0和\tau

开发环境

vscode python

代码及效果

一:代码

从图分析可知,函数为非线性函数,从表达式佐证v一阶导数,不为常数,为多项式,故在此使用非线性最小二乘法拟合数据,得到局部最优解。

代码示例:

from tkinter.font import families
import numpy as np
from scipy.optimize import curve_fit
import pylab as plt

#变量的范围
t=np.array([0.5,1,2,3,4,5,7,9])
v=np.array([6.36,6.48,7.26,8.22,8.66,8.99,9.43,9.63])
#函数表达式
def fun(t,v0,a):#t传入的变量,v0,a拟合参数。
    return 10-(10-v0)*np.exp(-t/a)
popt,pcov=curve_fit(fun,t,v)#最小二乘法拟合
print('v0,a充电常数字',popt)
yh2=fun(t,*popt)#计算已经知道数据的预测值
plt.rc('font',family='SimHei')
plt.rc('font',size=16)
plt.plot(t,v,'o')#画出拟合函数
plt.plot(t,yh2)#画出数据点
plt.legend(['data','fun'])
plt.show()

 

二:效果

效果

v0,\tau充电常数字 [5.55766614 , 3.50019433]

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值