問題解決のための数学

第1章 アルゴリズムと数学の密接なかかわり

第2章 アルゴリズムのための数学の基本知識

数の分類・文字式・2進法

2.1.1整数・有理数・実数

それぞれの数の説明

図のそれぞれの数の意味は次の通りです.

数の種類説明
複素数「 i 」を虚数単位(√(-1)のこと)として,「 a + b・i 」(a,bは実数)の形で表すことのできる数
実数複素数「a + b・i 」において虚部が0,つまり b =0 の数.数直線上に存在する数
虚数実数以外の数
純虚数複素数「 a + b・i 」において実部が0,つまり a =0 の数
有理数「 c/d 」(c, dは整数)の分数の形で表すことのできる実数
無理数有理数でない実数.無理数は非循環小数でもある
整数0と0に1ずつ加えた数(1, 2, 3…)および,0から1ずつ引いた数(-1, -2, -3…)
自然数整数のうち正である数(1, 2, 3…).0を含める場合もある
有限小数「 c/d 」の有理数を小数で表したときに割り切れる数
循環小数「 c/d 」の有理数を小数で表したときに割り切れない数.(現れるパターンには必ず循環がある)
超越数代数方程式の解とならない複素数.実超越数はすべて無理数.(円周率,自然対数の底など)

これら以外の数の例

数の種類説明
無限小数有限小数でない小数.循環小数と非循環小数の2種類
偶数2で割り切れる自然数
奇数2で割り切れない自然数
素数自分自身と1以外に約数を持たない数
単偶数2で割り切れるが4で割り切れない自然数
平方数自然数を2乗した数
立方数自然数を3乗した数
三角数数を三角形状に並べたときにそこに並ぶ総数の数(1, 3, 6, 10, 15…)
完全数その数自身を除く正の約数の和が,その数自身と等しい自然数(6, 28, 496, 8128…)

2.1.2文字式とは

文字式とは、文字を使って関係性を表した式です。a・b・c・x・yなどのアルファベットはもちろん、α(アルファ)・β(ベータ)・γ(ガンマ)・δ(デルタ)・ω(オメガ)・π(パイ)などのギリシャ文字も数字のほかに使われます。
文字式を使う理由は、特定の場合にかぎらない普遍的な式を作るためです。たとえばミカンとリンゴを合わせた個数を考えるとしましょう。ミカン4個・リンゴ5個の総数は9個です。式にすると4+5=9とできます。
上は問題ない人がほとんどかと思いますが、つぎはミカンとリンゴの数を限定せずに個数を式にしたい場合を考えてみましょう。ミカンの個数をx・リンゴの個数をyとすると、ミカンとリンゴの総数はx+yで表せます。数値を限定しない場合以外でも、数値が変わる変数・分からない未知数の場合にも文字式で対応可能です。つまり文字式によって計算がより便利になるといえます

第3章 基本的なアルゴリズム

対数関数と指数関数

Y=2^X関数計算のグラフ

関数関係y=x^2関数計算.png

指数関数と対数関数のグラフを以下にしめす。

指数関数指数関数.png
対数関数対数関数.png

二分法

今回は例として √2 = 1.41421356… の近似計算の実験を,Excel でやってみたいと思います。
√2 は,放物線 y = x2 – 2 と x 軸の交点のうち x>0 の領域にあるものです。ですから √2 の計算は「関数 f(x) = x2 – 2 に対し,f(x) = 0 を満たす点 x を求める」という問題に言い換えられます。
このような方程式の解を数値的に求める手法として,二分法と Newton 法というものが良く知られています。

二分法は,ある関数の値が 0 になる場所を,区間幅を半分に狭めながら探っていく手法です。

二分法の原理
関数 f(x) = x2 – 2 は区間 [0, 2] で短調増加です。さらに f(0) = -2 と f(2) = 2を合わせると,区間 [0, 2] 上に f(x) = 0 となる点が唯一存在することが分かります。
これを使うと「区間を左半分と右半分とに分けて,どっちに f(x) = 0 が含まれるかを調べる」という操作を十分な回数繰り返すことで,f(x) = 0 となる x の範囲を狭めていくことができます。
いまの場合
区間 [0, 2] の中点では f(1) = -1 < 0 なので,f(x) = 0 の解は [1, 2] 上のどこかにある
区間 [1, 2] の中点では f(3/2) = 1/4 > 0 なので,f(x) = 0 の解は [1, 3/2] 上のどこかにある
……
といった操作を繰り返すことになります。このステップを 1 回行うごとに解の存在し得る範囲を半分に狭められますから,n ステップ進めることで区間の幅を 2-n にできます。

表計算ソフトで計算したファイル 二分法のオープンドキュメントです。
インターネットディスク

数値積分

先ほどの積算の計算をする際、積算すべき対象を自分で関数で用意することで、その関数の定積分(に近い値)を計算することができます。
この手法を数値積分、積分の数値(計算)解と呼びます。 一方、微分積分学の講義で習うような、数式のやりくりだけで、最後に値を入れれば結果が出るような結果を解析解といいます。
基本的に解析解は数式変形上の正しさを保って行うため、値も正確です。 しかし、数値解は普通は後述のように誤差が生じます。
誤差は出ますが、解析解のように悩まなくても、そもそも解析解がない場合でも、そこそこ答えが得られることが最大の利点です。

表計算ソフトで計算したファイル 二分法のオープンドキュメントです。
インターネットディスク

第4章 発展的なアルゴリズム

問題解決のための数学/モンテカルロ法

第5章 問題解決のための数学的考察

三角関数は日常生活で何に役に立つの?
特に数学に苦手意識のある人は、「三角比」「三角関数」と聞いただけでアレルギー反応を起こしてしまうかもしれない。「sin(サイン)・cos(コサイン)・tan(タンジェント)なんて、社会に出ると何の役にも立たない」と思っている人もいるのではないだろうか。

コラム4三角関数

三角関数

ところが、三角関数は思いのほか私たちの生活に密着している。三角関数の陰の活躍を知れば、少しは親しみが湧くのでは?

測量
実は三角関数は、「近代文明の土台」といっても過言ではない重要な発明。三角関数のどこが画期的かというと、直角三角形の辺の長さの比から、直接手で測れないものも計算できるという点だ。

三角関数の用途として最も古く、現代社会でも必須なのが「測量」。三角比を応用した三角測量によって、直接測ることなく、距離や高さを測ることができる。三角測量の原理はGPSの測位にも生かされていて、私たちも普段オンラインマップなどでお世話になっているのだ。

ゲームプログラミング
「プログラミングと三角関数にどんな関係があるの?」と思う人もいるかもしれない。

ところが、ゲームなど座標を扱うプログラムを作成するときは三角関数が活躍する。ゲームプログラミングで三角関数がよく用いられるのは、キャラクターや物体が移動するとき。三角関数を使うことで、キャラクターや物体を思いどおりの角度や距離で動かすことができる。ゲームプログラミングにおいて、三角関数は欠かせない存在なのだ。

画像処理
画像を回転させるには、画像を構成する一つひとつの画素をすべて「回転後の座標に移動させる処理」が必要になる。そこで、三角関数を使用することで、回転後の座標と回転前の座標を求めて、画像を任意の角度に回転させられるように!

三角関数三角関数.png

第5章 問題解決のための数学的考察

関連ファイルのURL

インターネットディスク


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS