欧拉法python

def euler_method(f, x0, y0, h, x_end):
    """
    使用欧拉法求解常微分方程 y'=f(x,y) 的近似解。
    
    参数:
    f : callable
        含有微分方程 y'=f(x,y) 的函数。
    x0 : float
        初始x值。
    y0 : float
        初始y值。
    h : float
        步长。
    x_end : float
        求解的终点x值。
    
    返回:
    x_values : list
        x的值列表。
    y_values : list
        y的近似值列表。
    """
    # 初始化变量
    x_values = [x0]
    y_values = [y0]
    
    # 当前x和y值
    x = x0
    y = y0
    
    # 当x小于x_end时进行迭代
    while x < x_end:
        # 使用欧拉法计算下一个y值
        y_next = y + h * f(x, y)
        
        # 更新x和y值
        x += h
        y = y_next
        
        # 添加到列表中
        x_values.append(x)
        y_values.append(y)
        
    return x_values, y_values

# 示例使用
# 定义一个微分方程 y'=x+y
def f(x, y):
    return x + y

# 求解 y'=x+y, y(0)=1 从 x=0 到 x=2,步长为0.1
x_values, y_values = euler_method(f, 0, 1, 0.1, 2)

# 打印结果
for x, y in zip(x_values, y_values):
    print(f"x: {x}, y: {y}")


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值