我的微分方程求解器没有求解微分方程

时间:2021-03-19 15:18:58

标签: python-3.x numerical-integration

我正在尝试使用欧拉方法 1 (https://en.wikipedia.org/wiki/Euler_method) 解决 ODE。但是我的代码没有解决任何问题。代码与我的老师非常相似,以至于我找不到任何显着差异。有人可以帮忙吗?

enter from math import *
import numpy as np
import matplotlib.pyplot as plt 

def funkce(y, t):
 return(-y)

def euler_1(dt, y, t, funkce ):
 y = y + dt * funkce(y, t)
 t = t + dt
 return (y,t)

def solver(y0, t0, tstop, dt, typ):
 y = y0
 t = t0
 ys = [y]
 ts = [t]
while (t < tstop):
   (y,t) = typ(dt, y, t, funkce)
   ts.append(t)
   ys.append(y)
 return(ys,ts) 

plt.plot(solver(1, 0, 50, 0.05, euler_1))
t = np.linspace(0, 5, 50)
y = np.exp(-t)
plt.plot(t, y)

plt.show()

注意:最后一个图是与解析解的比较。 您可以找到绘图输出 here。 当我从求解器 y 和 t 而不是 ys 返回时,它只显示 ys 和 ts 的最后一行。

感谢任何帮助。

0 个答案:

没有答案
相关问题