• 検索結果がありません。

数値計算アルゴリズム

N/A
N/A
Protected

Academic year: 2021

シェア "数値計算アルゴリズム"

Copied!
5
0
0

読み込み中.... (全文を見る)

全文

(1)

数値計算アルゴリズム

-はじめに-

1

st

. 2020/04/12 L

st

. 2021/08/01

Q1. アルゴリズムと言語の違いは?

Q2. 解析解と数値解の違いは?

Q3. 数値解析が必要な理由は?

Q4. 数値計算結果の妥当性はどうやって示す?

参考書籍

系列 418.1系列 418.6系列

OPACキーワード検索 数値計算

数値計算法 数値解析

アルゴリズムと言語

3

仏教哲学では、古くから「身口意」を三業と呼び、人間が日 常生活の中で最も注意を払うべき心だと教えてきた。「身」と は、表情・行動のこと。「口」とは、ことば・言葉・文章のこと。

「意」とは、想念・思い・考えのこと。

「身」を表情とすれば、「意」は皮膚の中に隠された見えない 心で、裏情と言うこともできる。何れにせよ、順番としてまず

「意」から「口」となり、そして最後に「身」に発展する。例)妄想

→書き込み→犯罪もあれば、智慧→決意→実践もある。工学 ではこの逆過程の操作を逆アセンブルまたは、リバースエン ジニアリングと呼ぶ。工学技術の発展・普及には必要な過程。

①数値計算におけるアルゴリズムとは・・・

こうしたい、ああしたいという概念であって「意」に相当する。

②数値計算における言語とは・・・

概念を具体的に「口」にしたもので、日本語、英語、仏語、独語、中国 語・・・・と同様に、訛りや方言も含めれば無限の言語が存在する。中 には、流行りの言語もあれば廃れる言語もある。

③数値計算における計算結果とは・・・

言語の通りに行動・実行した結果であり、

「身」に相当する。

https://www.mitsue.co.jp/knowledge/blog /global_by_design/201902/23_1920.html

数値計算の分類

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.99, McGraw Hill, 2006

4

(a) Roots of equations

(b) Systems of simultaneous linear algebraic equations (c) Optimization

(d) Curve fitting

(e) Numerical integration

(f) Ordinary differential equations (g) Partial differential equations

(a) 非線形方程式など,「解の公式」が使えない場合に必須 (b) 3行3列以上の面倒な行列計算に必須

(c) 寸法最適化,構造最適化における目的関数(目標値)の計 算に必須

(d) 離散データの傾向を数式で把握する必要があるときに必須 (e) 解析的に積分できない場合に必須

(f) 物理・工学における現実問題=1次元の方程式の場合

(g) 物理・工学における現実問題=2次元以上の方程式の場合

(2)

数値計算結果と解析解の関係

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.3, McGraw Hill, 2006

1.

数値計算法は膨大な量の退屈な算術・算数計算(四則演算)

から成るが,記憶と四則演算しかできないコンピュータが最も 得意とする処理である。

2.

手計算を駆使して解析的に求められる解(厳密解と呼ぶ)は,

非常に限られた問題である。言い換えると,現実のほとんどの 問題は講義の演習の答えのように解析的には解けない。

3.

解析解(厳密解)はときに素晴らしい洞察や考察を与えてくれ るのも事実である。逆に言えば解析解というのは問題設定を 簡略化したり,次元を落としたりして手計算で解けるように理想 化しているともいえる。

Analytical

解析解

Numerical

数値解

数値計算法が必要な理由

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.3, McGraw Hill, 2006

1.

解析的には解けない問題でも,算術計算(四則演算)に置き換 えて解ける。

2.

数値計算をパッケージ化した商用シミュレータ(ソフト)を使う機 会が将来必ずやってくるが,ブラックボックス化されているこれ らの中身がどうやって動いているのかを知る必要がある。

3.

商用シミュレータでも解けない問題は沢山ある。そのとき,数 値計算法を知っていれば,自分でソースコードを作って自作シ ミュレータを作ることもできる。

4.

コンピュータの使い方を学ぶのに最も効率的な手段が数値計 算法である。なぜなら,プログラミングを学ぶのに効果的な方 法は自分でプログラムを書くことであるからである。数値計算 法の大半はソースコードをコンピュータ上で走らせることである。

5.

数値計算法は数学の理解度を補強してくれる。何故なら,一つ の数値計算法の機能又はアルゴリズムは,高度な数学(微分 積分)を算数(四則演算)に落とし込む作業であるためである。

工学と数値計算

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.3, McGraw Hill, 2006

7

実験

観察・試験

シミュレーション 数値計算

・考察

・洞察

・仮説

・仮想

・思考

・試行

アルゴリズム

数学・解析

微積分 線形代数 微分方程式 フーリエ解析

ベクトル解析

積分方程式

電気回路 電磁気学 電磁波工学 電子回路 特殊関数

複素解析

視点2 視点3

視点1

Plan

Do

Check 理論 Act

実験コスト削減,

開発時間・期間短縮による製品コスト低減

有限要素法 境界要素法

差分法 ニュートン法

最適化 補間

連立方程式 数値積分数値微分

汎用数値シミュレーションソフト

8

応用性 発展性 拡張性 CUI

使い勝手、GUI ユーザーフレンドリー C, Fortran

MATLAB (Scilab, Octave) Mathematica (Maxima)

VBA

Excel

ANSYS COMSOL

LTspice Python

( )内はオープンソース代替品、クローンとも呼ぶ。

汎用(どんなソフトにもなれる) マルチフィ ジックス特化

回路特化

Femtet

(3)

人気言語調査 2015

http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/

プログラミング言語の違いと共通点

言語 コメント文 画面出力 読み込み ファイル 出力

繰り返し

HTML <!-- abc --> ”file”

javascript // abc /* abc */

VBA ’ abc

’ abc ’

MsgBox Debug.Print

For To Fortran ! abc write()

print()

read() open() do end do C, C++ /* abc */ printf() Scanf() fopen() while

n++

Mathematica (* abc *) 行末に ; がない行

For[ ] Gnuplot # abc Plot, Splot load ’file’

Python # abc print() open()

1.方程式の根

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.6, McGraw Hill, 2006

11

( ) f x

x Root

(根)

f(x)=0

x

について解く。

ただし,

f(x)

は非線形関数

2次方程式までは解の公式が知られて

いるが,3次以上又は非線形方程式

(例えばln=log

e

を含む関数)は解の公 式が存在しない。

2.線形代数方程式の解

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.6, McGraw Hill, 2006

12

x2

x1

Solution

(解)

例えば,キルヒホッフの電圧則,電流 則を使った節点方程式,環路方程式 から得られる連立方程式はこのタイプ。

工学問題の大半はこの形(

N

行×

N

列 のマトリクス)に落とし込んで解く。

11 1 12 2 1

21 1 22 2 2

a x a x c a x a x c

 

  

をx1, x2について解く。

ただし,

x1

x2

の関係は線形

11 1

2 1

12 12

a c

x x

a a

  

12 2

2 1

22 22

a c

x x

a a

  

連立方程式

(4)

3.最適化

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.6, McGraw Hill, 2006

Minimum

(極小値)

工学製品の設計では日常的に出てく る問題。例えば,寸法を幾らにするの が要求特性を最良にするか,形状をど うしたら最良特性が得られるが,寸法 最適化と形状最適化が良く使われる。

f(x):

目的関数を最小にする

x

を求める。

( ) f x

x

4.回帰と補間

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.6, McGraw Hill, 2006

回帰

統計分野では回帰という言葉が使わ れる。

x

1

次(直線)の場合を単回帰,

x

2

次以上(曲線)を重回帰と呼ぶ。

測定値(離散データ)やサンプル値か らそれに適合する関数形

f(x)

を求める。

( ) f x

x ( )

f x

x

回帰(曲線適合)と似ているが,サンプ ル値における誤差はゼロ,言わばサン プル値だけは必ず通るような関数形を 求めて,サンプル点が存在しない部分 を埋め合わせる。

補間

5.積分

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.6, McGraw Hill, 2006

15

f(x)が解析的に積分できるときはよい

が,大半のケースは解析的に積分が 見つけられない。

複雑形状の物体の重心の決定,偏微 分方程式の解法の一つとしても使わ れる。

( ) f x

x

b ( ) I

a f x dx

をxについて解く 定積分

a b

I

積分

6.常微分方程式

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.6, McGraw Hill, 2006

16

(ti,yi)における傾きf(ti,yi)を使って,Δt

秒後の(t

i+1, yi+1)の座標を推定する方

法。当然

Δt

が小さいほど推定精度は 上がる。

例えば,電気回路における過渡現象 問題の解はこのタイプ。

y

t

( , )

dy y

f t y dt t

 

 

をtの関数としてyについて解く 常微分方程式

ti ti1

推定

Slope

f(ti, yi)

t yi1

yi

(5)

7.偏微分方程式

S. C. Chapra, Numerical Methods for Engineers, 5thEdition, p.6, McGraw Hill, 2006

17

工学のほとんどの問題がこの形 の方程式を解く問題に行き着く。

例えば,ラプラスの方程式,ポア ソンの方程式。

y

x

2 2

2 2 ( , )

u u

f x y

x y

  

 

をx,yの関数としてuについて解く 偏微分方程式

xi xi1 yi1

yi

x

y

偏微分方程式のシミュレーションは学際性の高い学問の一つ 時間領域

有限 差分法

境界 要素法

汎関数 連立方程式 数値微分(差分) 数値積分

グリーン 関数 有限

要素法

モード 差分法 整合法

固有関数

FFT DFT 時間- 周波数

変換

7.偏微分方程式

一石 賢, 物理学のための数学, p.5, ベレ出版, 2012

N. M. O. Sadiku, “Numerical Techniques in Electromagnetics 2nded.,” p. vii, CRC Press, 2001.

数値計算結果の検証

19

It has been well said by A.C. Doyle that “It is a capital mistake to theorize before you have all the evidence. It biases the judgment.”

Therefore, you should never trust the results of a numerical

computation unless they are validated, at least in part. You validate the results by comparing them with those obtained by previous investigators or with similar results obtained using a different approach which may be analytical or numerical. For this reason, it is advisable that you become familiar with as many numerical techniques as possible.

確認テスト

20

1. アルゴリズムと言語の違いを述べよ。

2. 数値解と解析解の違いを述べよ。

3. 代表的なプログラミング言語と主な使途についてまとめよ。

4. 数値計算の大分類を7つ挙げよ。

5. 常微分方程式と偏微分方程式の違いを述べよ。

6. 数値計算結果の妥当性を検証する方法について述べよ。

参照

関連したドキュメント

Its (approximate) solution is obtained by applying a finite element or finite difference scheme, associated with a discretization of the chosen (space) computational region, and, in

A number of previous papers have obtained heat kernel upper bounds for jump processes under similar conditions – see in particular [3, 5, 13]... Moreover, by the proof of [2,

In the context of the weighted Bergman spaces, a similar approach to the Carleson measures problem was employed by Luecking [9], who also obtained a characterization theorem in

Thus, starting with a bivariate function which is a tensor- product of finitely supported totally positive refinable functions, the new functions are obtained by using the

The basic idea is that, due to (2), if a Fuchsian system has finite linear monodromy group then the solution to the isomonodromy equations, controlling its deformations, will only

Section 4 contains the main results of this paper summarized in Theorem 4.1 that establishes the existence, uniqueness, and continuous dependence on initial and boundary data of a

In this paper, we study a problem for second order ordinary differential equation with mixed nonlocal boundary conditions combined weighting integral boundary conditions with

For systems of equations, recent existence results of bounded solutions were obtained by Mawhin [41] with a similar method as in this paper, when combin- ing a bound sets technique