欧拉方法

#P233 例题1
import numpy as np

x=0
y=0
yn=0
for i in range(0,11):
    x1=round(x+0.1,6)
    y1=round(y+0.1*(x-y),6)
    yn=round(x+np.e**(-x)-1,6)
    ans=round(yn-y,6)
    print(i,x,y,yn,ans)
    x=x1
    y=y1

#P264 习题九 1.(2)
import numpy as np

x=0
y=1
yn=1
for i in range(0,11):
    x1=round(x+0.1,4)
    #y1=round(y+0.1*(x-y),6)
    y1=round(y+0.1*(y-2*x/y),4)
    #yn=round(x+np.e**(-x)-1,6)
    yn=round((2*x+1)**0.5,4)
    ans=round(yn-y,4)
    print(x,y,yn,ans,sep='\t\t')
    x=x1
    y=y1


#P264 习题九 2
import numpy as np

x=0
y=0
yn=0
h=0.5
for i in range(0,5):
    x1=round(x+h,5)
    #y1=round(y+0.1*(x-y),6)
    y1=round(y+h*(1-2*x*y/(1+x**2)),5)
    #yn=round(x+np.e**(-x)-1,6)
    yn=round(x*(3+x**2)/3/(1+x**2),5)
    ans=round(yn-y,6)
    print(i,x,y,yn,ans,sep='\t\t')
    x=x1
    y=y1


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
欧拉方法是一种常用的数值方法,用于求解微分方程的初值问题。在MATLAB中,可以使用以下代码实现欧拉方法: ```MATLAB function [t, y = my_euler(f, t0, tf, y0, h) M = floor((tf - t0) / h); t = zeros(M+1, 1); y = zeros(M+1, 1); t = (t0:h:tf)'; y(1) = y0; for i = 1:M y(i+1) = y(i) + h * feval(f, t(i), y(i)); end end ``` 其中,f是微分方程的右端函数,t0和tf是计算区间的起始和终止点,y0是初值,h是步长。这段代码定义了一个名为`my_euler`的函数,可以传入相应的参数,返回离散化的时间点t和对应的数值解y。在循环中,通过欧拉方法的迭代公式来逐步计算数值解。 需要注意的是,该代码是通过前向欧拉法来实现欧拉方法。其他改进方法,如后向欧拉法、梯形方法和改进欧拉方法,可以通过对上述代码稍作修改来实现。例如,后向欧拉法可以将迭代公式改为`y(i+1) = y(i) + h * feval(f, t(i+1), y(i+1))`,梯形方法可以使用梯形公式进行迭代计算,改进欧拉方法可以使用改进公式进行迭代计算。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [欧拉法及其他改进方法——Matlab实现](https://blog.csdn.net/qq_36312878/article/details/80945781)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [matlab:使用欧拉方法求解微分方程](https://blog.csdn.net/qq_41708281/article/details/124243519)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [前向欧拉法、后向欧拉法、梯形方法、改进欧拉方法MATLAB](https://download.csdn.net/download/qq_36318771/11030011)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值