'''欧拉方法'''
#所求常微分方程
f_x=input('y\'=')
def fy(x,y):
return eval(f_x)
#原方程的精确解
f_e=input('y =')
def fe(x,y):
return eval(f_e)
#输入已知条件
def Condition(x,y,h1,N1):
a = float(input('x下限:'))
b = float(input('x上限:'))
h1 = float(input('步长h:'))
x = float(input('初值x:'))
y = float(input('初值y:'))
N1 = (b-a)/h1
return x,y,h1,N1
#欧拉方法
def Euler(x_i,y_i,h1,N1):
n=0
ys=[] #创建一个空列表,存储y_i1
while n<N1:
n+=1
x_i1=x_i+h1
y_i1=y_i+h1*fy(x_i,y_i)
ys.append(y_i1)
x_i=x_i1
y_i=y_i1
return ys
#调用所建立函数
x0=y0=h=N=0
x0,y0,h,N=Condition(x0, y0, h, N)
ans = Euler(x0, y0, h, N)
print(" xi 欧拉法yi 精确解y(xi)
微分方程的数值解法之欧拉方法
最新推荐文章于 2024-04-02 15:48:05 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)