コンピュータの高速化により, 即座に計算できるようになってきたが, 手法的にはコンピュータ出現以前に考え出された 方法が数多く使われている。

Slides:



Advertisements
Similar presentations
Division of Process Control & Process Systems Engineering Department of Chemical Engineering, Kyoto University
Advertisements

2. 数値微分法. 数値微分が必要になる場合として、次の 2 つが考えられる。 関数が与えられていて、その微分を近似的に計算する。 (数値微分の精度が十分で、かつ、計算速度が数値微分の方が 早い場合など。) 離散的な点の上で離散的なデータしかわかっていない関数の微 分を近似的に計算する。(偏微分方程式の数値解を求めたい時.
情報基礎実習 I (第6回) 木曜4・5限 担当:北川 晃. Stream クラスを用いたファイルの接続 … Dim インスタンス名 As New IO.StreamReader( _ “ ファイルの絶対パス ”, _ System.Text.Encoding.Default) … s = インスタンス名.
数学のかたち 数学解析の様々なツール GRAPSE編 Masashi Sanae.
電子情報工学科5年(前期) 7回目(21/5/2015) 担当:古山彰一
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
確率・統計Ⅰ 第11回 i.i.d.の和と大数の法則 ここです! 確率論とは 確率変数、確率分布 確率変数の独立性 / 確率変数の平均
プログラミング論 I 補間
4.3 連立1次方程式   Ax = b   (23) と書くことができる。
6.3 2次元DFT (1)2次元DFTとは 画像のような2次元信号をサンプリングしたデータを 2次元DFTを
解析的には解が得られない 方程式を数値的に求める。 例:3次方程式
3 一次関数 1章 一次関数とグラフ §3 一次関数の式を求めること          (3時間).
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
1 次方程式 直線   と 軸が交わる点 解ける! 解析的に解ける(解析解)   または 厳密に解ける (厳密解)
Scilab で学ぶ  わかりやすい数値計算法 舞鶴高専 電子制御工学科 川田 昌克.
シミュレーション論Ⅰ 第4回 基礎的なシミュレーション手法.
4.2 連立非線形方程式 (1)繰返し法による方法
方程式と不等式 1次方程式 1次不等式.
6.4 離散的コサイン変換 (DCT : discrete cosine transform ) (1)DCTとは
非線形方程式の近似解 (2分法,はさみうち法,Newton-Raphson法)
2008年6月12日 非線形方程式の近似解 Newton-Raphson法
数楽(微分方程式を使おう!) ~第4章 他分野への応用(上級編)~
電気回路学Ⅱ エネルギーインテリジェンスコース 5セメ 山田 博仁.
(ラプラス変換の復習) 教科書には相当する章はない
電気回路Ⅱ 演習 特別編(数学) 三角関数 オイラーの公式 微分積分 微分方程式 付録 三角関数関連の公式
誤差の二乗和の一次導関数 偏微分.
第7回 条件による繰り返し.
本時の目標 「簡単なプログラム言語の意味を理解し、マクロ機能を使って簡単なプログラムを作ることができる。」
スペクトル法の一部の基礎の初歩への はじめの一歩
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
情報実習I (第6回) 木曜4・5限 担当:北川 晃.
正規分布確率密度関数.
地域情報学演習 VBAプログラミング 第3回 2017年10月24日
Curriki原典
第7回 条件による繰り返し.
6. ラプラス変換.
ルンゲクッタ法 となる微分方程式の解を数値的に解く方法.
電気回路学Ⅱ コミュニケーションネットワークコース 5セメ 山田 博仁.
原子動力工学特論 レポート1 交通電子機械工学専攻 齋藤 泰治.
変換されても変換されない頑固ベクトル どうしたら頑固になれるか 頑固なベクトルは何に使える?
電機制御工学 定量的制御編 清弘 智昭.
4. システムの安定性.
計算機プログラミングI 第6回 2002年11月14日(木) アルゴリズムと計算量 第1回課題の説明 平方根を計算するアルゴリズム 計算量
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年6月25日 3.1 関数近似モデル
補講:アルゴリズムと漸近的評価.
回帰分析(Regression Analysis)
解析学 ー第9〜10回ー 2019/5/12.
情報科学 第6回 数値解析(1).
C:開放,L:短絡として回路方程式を解く
確率論・数値解析及び演習 (第7章) 補足資料
数値解析 第6章.
13.ニュートン法.
電気回路学Ⅱ 通信工学コース 5セメ 山田 博仁.
2008年6月5日 非線形方程式の近似解 2分法,はさみうち法,Newton-Raphson法)
ニュートン法による 非線型方程式の解.
情報実習I (第6回) 木曜4・5限 担当:北川 晃.
Cプログラミング演習 ニュートン法による方程式の求解.
プログラミング演習I 数値計算における計算精度と誤差
3 一次関数 1章 一次関数とグラフ §4 方程式とグラフ         (3時間).
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
6.2 高速フーリエ変換 (1)FFT(fast Fourier transform)とは
6.5 アダマール(Hadamard)変換 (1)アダマール変換とは
共振を防ぐように設計を行ったり, 振動を早く減衰させる設計を行う際, 固有値と固有ベクトルを求めることが重要
7.2 回帰曲線 身長と体重…関係がありそう? ??? 身長と体重の関係をグラフで観察する.
プログラミング言語によっては,複素数が使えない。
5.2 グレゴリー・ニュートン(Gregory-Newton)の補間式 (1)導入
8.2 数値積分 (1)どんなときに数値積分を行うのか?
5.3 ラグランジェ(Lagrange)の補間式
弾力性 労働経済学.
8.数値微分・積分・微分方程式 工学的問題においては 解析的に微分値や積分値を求めたり, 微分方程式を解くことが難しいケースも多い。
Presentation transcript:

コンピュータの高速化により, 即座に計算できるようになってきたが, 手法的にはコンピュータ出現以前に考え出された 方法が数多く使われている。 4.非線型方程式 コンピュータの高速化により, 即座に計算できるようになってきたが, 手法的にはコンピュータ出現以前に考え出された 方法が数多く使われている。 1642/12/25 - 1727/3/20 Sir Isaac Newton

非線型方程式の種類 ①代数方程式 ②超越方程式(sin関数や指数関数など超越関数を含む方程式)

注意 ①複素数の範囲内では, 代数方程式の解の個数は,分かっているが, 超越方程式の解の個数は,一般的には分からない。 ②いずれの方程式を解くにしても, あらかじめ概略のグラフを描く等の手段により, 解の存在と,どの範囲に解があるかを 確認しておく必要がある。

4.1 実根(複素数は含めない)の求め方 (1)繰返し法 4.1 実根(複素数は含めない)の求め方 (1)繰返し法 解くべき方程式 を と置き換えることができるとき とし,適当な解の予測値 を与えて, 繰返し演算を行う。

繰返し法の例題 [例] 解 に急速に近づく

厳密解との比較のための式定義 繰返し法を Excel で式定義して様子を眺めよう 2次方程式の 根の公式による解

繰返し法での収束の様子 グラフを描いて確かめよう

課題(1) 下記の方程式を繰返し法を用いて, Excelで定義し, 収斂の様子をグラフで確かめること

交点における g(x) の傾きが1より大きい場合 繰返し法では,ほとんど収束しない 収束しない例

解決策 交点の傾きが 1 より小さくなるような等価な方程式に変換する。たとえば, とおけば, とすればよい。 を求めて,

解決策 [確認] とおいて を求めて元に戻す。

課題(2) ① 下記の方程式が繰返し法では収斂しないことを確認せよ。 ② また,どのようにすれば収斂するかを検討せよ。 ① 下記の方程式が繰返し法では収斂しないことを確認せよ。 ② また,どのようにすれば収斂するかを検討せよ。 ③ 収斂する方法をExcelで定義して提出せよ。

VBAでのプログラム Function 漸化式(X) As Double 漸化式 = (X * X + 1) / 2 ' この部分に漸化式を書く End Function Function 繰返し法(E, iter, EPS, iterMax) As Double iter = 0: X1 = 0: E = EPS * 100 Do While E > EPS And iter < iterMax iter = iter + 1 X2 = 漸化式(X1) E = Abs(X2 - X1) X1 = X2 Loop 繰返し法 = X2 Sub ボタン1_Click() R = 繰返し法(E, iter, 0.0000001, 5000) MsgBox " 繰返し回数 = " & iter & _ " 結果 = " & Format(R, "#0.0000") & " 誤差 = " & E End Sub

(2)区間縮小法 区間 の間に解が一つだけあることが分かっていれば, は, と の間で符号を変える。すなわち もし, ならば である。 ここで,中点 における関数値の正負によって区間を 縮小できる。すなわち

例題とする関数 [例] の場合

区間縮小法の式定義 Excel式定義で確かめてみよう(1) の場合 式が変わればここを変更

区間縮小法の収束の様子 Excel式定義で確かめてみよう(2)

VBAでのプログラム Function F(X) As Double F = X * X - X - 2 ' ここに解くべき関数を書く End Function Function 区間縮小法(E, iter, EPS, iterMax) As Double iter = 0: X1 = 1: X2 = 4: E = EPS * 100 Do While E > EPS And iter < iterMax iter = iter + 1: X = (X1 + X2) / 2: Y = F(X) If Abs(Y) < EPS Then: Exit Do ElseIf Y > 0 Then: X2 = X Else: X1 = X End If E = Abs(X2 - X1) Loop E = Abs(Y): 区間縮小法 = X Sub ボタン4_Click() R = 区間縮小法(E, iter, 0.000001, 500) MsgBox " 繰返し回数 = " & iter & " 結果 = " & _ Format(R, "#0.0000") & " 誤差 = " & E End Sub

課題(3) 下記の方程式を区間縮小法を用いて, Excelで定義し, 収斂の様子をグラフで確かめること

(3)ニュートン・ラプソン(Newton-Raphson)法 (ニュートン・ラフソン法と呼ぶ人もいるが?…ニュートン・ラプソン法が多勢) 近似値 として,真の解との誤差を とすると 左辺をテーラ展開して,1次の項までとれば したがって, は,より高い精度の近似値となる。 これを繰り返して,解に収束させていく。

ニュートン・ラプソン法の式定義 Excel式定義で確かめてみよう(1) の場合 式が変わればここを変更

ニュートンラプソン法の収束の様子 Excel式定義で確かめてみよう(2)

課題(4) 下記の方程式をニュートンラプソン法を用いて, Excelで定義し, 収斂の様子をグラフで確かめること

Function ニュートンラプソン法(E, iter, EPS, iterMax) ' X^2 - X - 2 = 0を解く Function F(X) As Double F = X * X - X - 2 ' ここに解くべき関数を書く End Function Function DF(X) As Double DF = 2*X - 1 ‘ ここに微分式を書く Function ニュートンラプソン法(E, iter, EPS, iterMax) ' X^2 - X - 2 = 0を解く iter = 0: X = 1: E = EPS * 100 Do While iter < iterMax iter = iter + 1 Y = F(X): If Abs(Y) < EPS Then Exit Do X = X - Y / DF(X) Loop E = Abs(Y): ニュートンラプソン法 = X Sub ボタン5_Click() R = ニュートンラプソン法(E, iter, 0.00001, 500) MsgBox " 繰返し回数 = " & iter & " 結果 = " & _ Format(R, "#0.0000") & " 誤差 = " & E End Sub

(4)セカント(secant)法 (secantとは,「割線」,「交差する」等の意味) 導関数を求めることができない場合,解の近似値を2個用意し, 2点を結ぶ直線とX軸との交点を新たな近似値とする方法。すなわち, 曲線に交差する割線 これを繰り返すことで解に収束させる。

セカント(secant)法 k 回目の式は以下のように表すことができる。 (セカント法の弱点) 初期値を2個与える必要があるので,   初期値を2個与える必要があるので,   多変数への拡張が困難である。 曲線に交差する割線

ニュートンラプソン法との比較 微分値の替わりに 割線を用いていると捉えてよい。

セカント法の式定義 Excel式定義で確かめてみよう(1) の場合 式が変わればここを変更

セカント法による収斂

課題(5) 下記の方程式をセカント法を用いて, Excelで定義し, 収斂の様子をグラフで確かめること

VBAでのプログラム(関数F(X)はニュートンラプソンと共通) Function セカント法(E, iter, EPS, iterMax) EPS = 0.00001: iter = 0: iterMax = 500 X1 = 1: X2 = 4: E = EPS * 100 Y1 = F(X1) ' X1に関する式を書く Do While E > EPS And iter < iterMax iter = iter + 1 Y2 = F(X2) ' X2に関する式を書く Y = (Y1 + Y2) / 2 If Abs(Y) < EPS Then Exit Do X = X2 - Y2 * (X1 - X2) / (Y1 - Y2) X1 = X2: X2 = X: Y1 = Y2 '前回式の保存 Loop E = Abs(Y): セカント法 = X End Function Sub ボタン6_Click() R = セカント法(E, iter, 0.00001, 500) MsgBox " 繰返し回数 = " & iter & " 結果 = " & _ Format(R, "#0.0000") & " 誤差 = " & E End Sub

課題(6) サンプルVBAプログラムを用いて 以下の方法による収斂回数を比較せよ。 ① 繰返し法 ② 区間縮小法 ③ ニュートンラプソン法   ① 繰返し法   ② 区間縮小法   ③ ニュートンラプソン法   ④ セカント法