コンテンツにスキップ

ファイル:Stability region for BDF1.svg

ページのコンテンツが他言語でサポートされていません。

元のファイル (SVG ファイル、720 × 540 ピクセル、ファイルサイズ: 88キロバイト)

概要

解説
English: Region of absolute stability for the backward Euler = BDF1 method. See below for Python source. Compare with page 350 of Süli, Endre; Mayers, David (2003), An Introduction to Numerical Analysis, Cambridge University Press, ISBN 0521007941.
日付
原典 投稿者自身による著作物
作者 Jitse Niesen
SVG 開発
InfoField
 
このSVGのソースコードは正しい
 
この ベクター画像Matplotlibで作成されました。
ソースコード
InfoField

Python code

import numpy
from matplotlib import pyplot

BFDcoeffs = { 1: {'alpha': [1, -1], 'beta': 1},
              2: { 'alpha': [3, -4, 1], 'beta': 2 },
              3: { 'alpha': [11, -18, 9, -2], 'beta': 6 },
              4: { 'alpha': [25, -48, 36, -16, 3], 'beta': 12 },
              5: { 'alpha': [137, -300, 300, -200, 75, -12], 'beta': 60 },
              6: { 'alpha': [147, -360, 450, -400, 225, -72], 'beta': 60 } }

plotWindow = { 1: { 'realPart': [-2, 3], 'imagPart': [-2, 2] },
               2: { 'realPart': [-2, 5], 'imagPart': [-3, 3] },
               3: { 'realPart': [-4, 8], 'imagPart': [-5, 5] },
               4: { 'realPart': [-4, 14], 'imagPart': [-8, 8] },
               5: { 'realPart': [-10, 25], 'imagPart': [-15, 15] },
               6: { 'realPart': [-20, 40], 'imagPart': [-30, 30] } }

# Returns > 1 if argument is not in region of absolute stability
def stabilityFunction(hTimesLambda, s):
    stabPolyCoeffs = list(BFDcoeffs[s]['alpha'])
    stabPolyCoeffs[0] -= hTimesLambda * BFDcoeffs[s]['beta']
    return max(abs(numpy.roots(stabPolyCoeffs)))

# Main program
for s in range(1,7):
    x = numpy.linspace(*plotWindow[s]['realPart'], num=400)
    y = numpy.linspace(*plotWindow[s]['imagPart'], num=400)
    [X,Y] = numpy.meshgrid(x,y)
    Z = numpy.zeros(X.shape)
    for m in range(X.shape[0]):
        for n in range(X.shape[1]):
            Z[m,n] = stabilityFunction(X[m,n] + 1j * Y[m,n], s)
    pyplot.contour(X, Y, Z, [1], colors='k')
    pyplot.contourf(X, Y, Z, [0,1], colors=[[1, 0.5, 0.8]])
    pyplot.plot(plotWindow[s]['realPart'], [0, 0], 'k--')
    pyplot.plot([0, 0], plotWindow[s]['imagPart'], 'k--')
    pyplot.gca().tick_params(labelsize = 20)
    pyplot.savefig('Stability_region_for_BDF%d.svg' % s)
    pyplot.clf()

ライセンス

この作品の著作権者である私は、この作品を以下のライセンスで提供します。
Creative Commons CC-Zero このファイルはクリエイティブ・コモンズ CC0 1.0 全世界 パブリック・ドメイン提供のもとで利用可能にされています。
ある作品に本コモンズ証を関連づけた者は、その作品について世界全地域において著作権法上認められる、その者が持つすべての権利(その作品に関する権利や隣接する権利を含む。)を、法令上認められる最大限の範囲で放棄して、パブリック・ドメインに提供しています。

この作品は、たとえ営利目的であっても、許可を得ずに複製、改変・翻案、配布、上演・演奏することが出来ます。

キャプション

このファイルの内容を1行で記述してください

このファイルに描写されている項目

題材

20 3 2012

ファイルの履歴

過去の版のファイルを表示するには、その版の日時をクリックしてください。

日付と時刻サムネイル寸法利用者コメント
現在の版2012年3月20日 (火) 15:372012年3月20日 (火) 15:37時点における版のサムネイル720 × 540 (88キロバイト)Jitse Niesen

以下のページがこのファイルを使用しています:

グローバルなファイル使用状況

以下に挙げる他のウィキがこの画像を使っています: