Student[NumericalAnalysis] パッケージ
Student[NumericalAnalysis] パッケージには、数値解析の概念を学習し、理解するためのコマンドが用意されています。このパッケージの数値解析の対象分野として、初期値の問題、補間、数値線形代数、数値求積法、根探索があります。このワークシートは、いくつかのコマンドの使用法と、対話式チューターの開始方法について説明します。
|
はじめに
|
|
パッケージ内のコマンドはいずれも Student[NumericalAnalysis][Euler] といった長い形式を使用して参照できますが、多くの場合は、パッケージをロードしてから次のように短い形式のコマンド名を使用する方が手軽です。
>
|
|
>
|
|
|
|
初期値の問題
|
|
Student[NumericalAnalysis] パッケージには、初期値の問題で数学的な近似値を求めることができるコマンドがいくつか含まれています。使用可能な近似法には次の種類があります。Adams Bashforth、Adams Moulton 法、Euler 法、Runge-Kutta 法、Taylor 法です。このうち Adams Bashforth、Adams Moulton、および Runge-Kutta にはいくつかのサブメソッドも用意されています。
>
|
|
| (2.1) |
>
|
|
| (2.2) |
>
|
|
| (2.3) |
InitialValueProblem コマンドは、次のように output=plot オプションを使用して厳密解や近似解のプロットを返すこともできます。
>
|
|
comparewith オプションでは、複数の異なる近似法を比較して厳密解を求めることができます。 comparewith オプションには、output=plot オプションと output=information オプションが使用できます。
>
|
![InitialValueProblem(DE1, y(0) = .4, t = 0 .. 4, method = rungekutta, submethod = rk4, comparewith = [[euler], [adamsbashforth, step2]], order = 8, output = plot)](/support/helpjp/helpview.aspx?si=2039/file01039/math88.png)
|
>
|
![InitialValueProblem(DE1, y(0) = .4, t = 0 .. 4, method = rungekutta, submethod = rk4, comparewith = [[euler]], order = 8, output = information)](/support/helpjp/helpview.aspx?si=2039/file01039/math97.png)
|
| (2.4) |
|
|
補間
|
|
Student[NumericalAnalysis] パッケージには、データポイント上で補間多項式や三次スプライン補間を実行できる学生向けコマンドがいくつか含まれています。補間法の種類には Lagrange、Newton、Hermite、Neville と三次スプライン補間があります。補間は PolynomialInterpolation コマンドまたは CubicSpline コマンドを使用して演算します。これらのコマンドは POLYINTERP データ構造体を返し、この構造体はその後、情報を取得するために別の Student[NumericalAnalysis] コマンドに渡されます。
>
|
|
| (3.1) |
PolynomialInterpolation コマンドを使用して、補間を実行し、すべての情報を格納します。
>
|
|
Interpolant コマンドを使用して POLYINTERP 構造体から補間式を導き出します。
>
|
|

| (3.2) |
Function コマンドを使用して関数を導き出します。
>
|
|
| (3.3) |
RemainderTerm コマンドを使用して剰余項を求めます。
>
|
|
| (3.4) |
Draw コマンドを使用して Newton 補間からの基底関数をプロットします。
>
|
|
CubicSpline コマンドを使用して三次スプライン補間を実行します。
>
|
|
Draw コマンドを使用して補間多項式をプロットします。
>
|
|
|
|
数値線形代数
|
|
Student[NumericalAnalysis] パッケージには、数値線形代数を実行できる学生向けコマンドがいくつか用意されています。Student[NumericalAnalysis] パッケージの数値線形代数コマンドの中でも代表的な 2 つが行列分解法と逐次近似法です。使用できる逐次近似手法には、Gauss-Seidel、Jacobi および逐次過緩和があります。
>
|
|
| (4.1) |
行列を因数分解します。
>
|
|
| (4.2) |
行列が厳密に対角優位になっているかを確認します。
>
|
|
| (4.3) |
逐次過緩和法を使用して連立方程式の近似解を求めます。
>
|
|
| (4.4) |
>
|
|
| (4.5) |
|
|
数値求積法
|
|
Student[NumericalAnalysis] パッケージには、複数の方法で積分の近似値を求めることができる学生向けコマンドがいくつか用意されています。使用できる求積法には、Newton-Cotes (ユーザーが次数を指定する開いた公式と閉じた公式)、台形公式、Booleの公式、Simpsonの公式、Simpson 3/8の則公式、Gaussian 積分、Romberg 積分があります。これらの公式のいくつかは、Quadrature コマンドに adaptive=true オプションを指定するか AdaptiveQuadrature コマンドを使用して実行することができます。近似積分の結果は、和、値、プロット、アニメーションまたは数式計算の情報出力として返すことができます。
>
|
|
| (5.1) |
>
|
|
| (5.2) |
Boole の公式で の近似値を求めると次のようになります。
>
|
|
| (5.3) |
output=plot オプションを使用すると近似値のプロットを表示できます。
>
|
|
Quadrature コマンドに adaptive=true オプションを指定するか、AdaptiveQuadrature コマンドを使用すると適応型求積を行うこともできます。
>
|
|
| (5.4) |
output=information オプションを使用すると、近似実行中の適応の記録を出力することができます。
>
|
|
INTEGRAL: Int((1+cos(x)^2)^(1/2),x=1..14) = 15.7418533
APPROXIMATION METHOD: Adaptive Bode's Rule
---------------------------------- INFORMATION TABLE ----------------------------------
Approximate Value Absolute Error Relative Error
15.7418676 1.426e-05 9.059e-05 %
---------------------------------- ITERATION HISTORY ---------------------------------------
Interval Status Present Stack
1..14 fail EMPTY
1..15/2 fail [15/2, 14]
1..17/4 fail [[1], [17/4, 15/2]]
1..21/8 PASS [[2], [21/8, 17/4]]
21/8..17/4 PASS [[1], [17/4, 15/2]]
17/4..15/2 fail [15/2, 14]
17/4..47/8 PASS [[1], [47/8, 15/2]]
47/8..15/2 PASS [15/2, 14]
15/2..14 fail EMPTY
15/2..43/4 fail [43/4, 14]
15/2..73/8 PASS [[1], [73/8, 43/4]]
73/8..43/4 PASS [43/4, 14]
43/4..14 fail EMPTY
43/4..99/8 PASS [99/8, 14]
99/8..14 PASS EMPTY
--------------------------------------------------------------------------------------------
Number of Function Evaluations: 65
| |
|
|
根探索
|
|
Student[NumericalAnalysis] パッケージには、式の数値近似根を求めるための学生向けコマンドがいくつか用意されています。根探索近似法には、Newton-Raphson、修正 Newton-Raphson、2 分法、割線法、固定点逐次法、挟み撃ち法、Steffensen 法があります。
>
|
|
| (6.1) |
ここでは 2 分法を試してみます。
>
|
|
| (6.2) |
次に、output=plot オプションを指定したNewton-Raphson 法を実行して近似結果を表示します。
>
|
|
|
|
チューター
|
|
Student[NumericalAnalysis] パッケージには、数値解析問題の解を求める学生を対話的に支援する 4 種類のチューターが含まれています。Euler、InitialValueProblem、IterativeFormula、および MatrixDecomposition の 4 種類です。このチューターはメニューから ツール > チューター > Numerical Analysis の順に選択するか、ワークシートから下記のように呼び出すとアクセスできます。
>
|
|
|
Return to Index for Example Worksheets
|
Download Help Document
Was this information helpful?