import numpy as np
import matplotlib.pyplot as plt
# Problem1
h = [0.001, 0.005, 0.01, 0.05, 0.1]
num = 5 / h[0]
y = 1
t = 0
dy_dt = -1
tPlot = np.arange(0, 5, h[0])
yPlot = []
for i in range(int(num)):
yPlot.append(y)
t += h[0]
y += dy_dt * h[0]
dy_dt = -2*y+2-np.exp(-4*t)
if i % 1000 == 999:
print(t, y)
plt.plot(tPlot, yPlot, label="Euler's method")
yExact = (np.exp(-4*tPlot))/2-(np.exp(-2*tPlot))/2+1
plt.plot(tPlot, yExact, label="exact solution")
plt.xlabel("t")
plt.ylabel("y")
plt.ylim(0.8, 1.05)
plt.legend()
plt.show()
plt.plot(tPlot, yPlot, label="0.001")
for i in range(4):
num = 5 / h[i+1]
y = 1
t = 0
dy_dt = -1
tPlot = np.arange(0, 5, h[i+1])
yPlot = []
for j in range(int(num)):
yPlot.append(y)
t += h[i+1]
y += dy_dt * h[i+1]
dy_dt = -2*y+2-np.exp(-4*t)
plt.plot(tPlot, yPlot, label=h[i+1])
plt.xlabel("t")
plt.ylabel("y")
plt.ylim(0.8, 1.05)
plt.legend()
plt.show()
用python实现欧拉法求原函数
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:python欧拉法
下一篇:Unity 存储路径
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
变量替换 java 变量替换求原函数
§5.4 定积分的换元法一、换元公式【定理】若1、函数在上连续;2、函数在区间上单值且具有连续导数;3、当在上变化时,的值在上变化,且 , 则有 &nb
变量替换 java 高等数学 定积分 不定积分 -
r语言求一个导数的原函数 r语言rug函数
R语言:函数与正则 sub函数替换首次出现的,gsub函数比之多了个g,全部替换,ignore.case=TRUE忽略大小写,fixed=TRUE精确匹配。
r语言求一个导数的原函数 perl 大小写 函数返回