回覆列表
  • 1 # 李大白Eyes

    分析

    向後euler法由於等式前後都有u[n+1],所以,不能向向前euler法一樣,只需要做出迴圈:u[n+1]=u[n]+h*f(t[n],u[n])即可。

    所以,向後euler在進行計算u[n+1]時,需要設定u_[n+1]^{0},和精確誤差eps,利用差分方程進行迭代,使得在迭代前後值誤差足夠小的時候,認為已經收斂到區域性精確解。

    程式碼實現

    對已知、所需的條件進行設定:

    h是等距差分的間距;eps是迭代的精度,可根據要求進行更改。

    u(1)=初始條件。以u=exp(-t)為例。

    迭代部分:

    temp是迭代後的值,用於比較差是否小於誤差精度。

    由於判斷收斂的條件有兩個值,所以需要在for迴圈內預設。由於while迴圈內的語句,所以,temp的值的關鍵,而u[i]的值僅需設定成temp-c即可。(c是任一大於eps的常數。)

    由於向後euler恆穩定,迭代收斂,temp的值可以設定任意常數,但是誤差會有很大區別。所以使用向前euler法設定的temp的值。

  • 中秋節和大豐收的關聯?
  • 做完宮腹腔鏡能吃各種水果?