gihyo.jp » DEVELOPER STAGE » 連載 » はじめMath! Javaでコンピュータ数学 » 第69回 微分・積分の数学 数値微分 [前編]

はじめMath! Javaでコンピュータ数学

第69回 微分・積分の数学 数値微分 [前編]

料理のレシピを読んでいて困るのが「○○を少々」という表現です。量りで量れないようなわずかな分量だから「少々」と書くのです。材料が元々含む塩分や,好みによってこの「少々」が変動することはよく分かります。でも,困るのです。経験の浅い私は臆病になって「ほーんのちょっぴり」になってしまったり,加減が分からなくて「入れすぎ」になったりします。結果,妙に味のないスープになってしまったり,辛くて思わずしかめっ面したくなるような野菜炒めになってしまったり。「少々」というのは難しいものですね。「さじ加減」をしながら,だんだん上手になりたいものです。それまでは,おおよその加減で「おいしい」と思えれば,それで良しとするのが精神衛生上も良いのでしょう。

これから紹介する数値微分は,まさしくそのような手段です。「出来ないよりは,役に立つ程度に出来ればOK」そんなツールです。どうです?興味がわいたことでしょう。では,始めましょう。

図69.1 「いいかげん」は「良い加減」

図69.1 「いいかげん」は「良い加減」

数値微分とは

ニュートン・ラフソン法では関数 f(x) とその導関数 f′(x) の値を求める必要があります。関数が簡単に微分できるものならば良いのですが,複雑な関数だったり,そもそも微分が苦手な場合は,変換間違い,計算間違いをする心配があります。苦労して微分して得た導関数が間違ってたなんて,目も当てられません。

数値微分はそんな私たちの救世主です。単純な計算で微分の近似値が得られるのです。

数値微分※1)とは,関数の描くグラフ上でとても近接した二点を結ぶ直線をとり,微分値の近似値とする方法です。

図69.2 数値微分とは

図69.2 数値微分とは

解析的に求めた微分の値と厳密には一致しませんが,目的の許容する誤差の範囲で値が得られるのならば,微分を解析的に求めることが困難な場合に助かります。数値微分の結果は,解析的に求めた微分値の検証に用いることもあります。数式の形で現象が説明出来ない場合でも,時系列で連続した測定データを得られれば,数値微分を用いて微分の近似値を得ることが出来ます。

※1)
numerical differentiation

差分近似

図69.2で紹介したのは差分近似※2)という数値微分の方法です。なるほど,hの値が十分小さければ,おおよそ正しい微分値を得られそうです。せっかくですから,漠然とではなく,どの程度近い値が得られるものなのかを確かめます。

いま,関数 f(x) の点 x における1階微分 f′(x) の値を求めるのだとします。 h は微少な量を表すものとし, f(x+h) を点 x の周りでテイラー展開します。

テイラー展開※3)とは,関数を多項式の形に展開する方法です。

f(x)x = a のまわりでテイラー展開する式は次のように定義されています。

f(x+h)x のまわりでテイラー展開する」ために,式69.1で, xx+hax と読みかえます。

式69.5O(h2 は,3項目以降の多項式の値の大きさをおおよそ示したものです。

O()※4)は,ある式の表す数値の大きさをオーダー(桁数)で表したものです。オーダーで表示することで,基準となる数に対して,式の値がどのくらい大きいかを大雑把に示す事が出来ます。今回は基準となる数を微少な量hとし,その2乗程度の大きさがあることを表しています。

式69.5を f′(x) =の形に変形します。

こうして, f′(x) を近似する式が出来ました。式69.10前進差分※5)の式といいます。lim h0 のとき,右辺は微分の定義そのものです。数値微分では, h を適切な小さな値にして,関数の描く曲線の接線の傾きの近似値を求めるのです。 O(h) は近似によって生じた誤差で打ち切り誤差※6)といい,今回は「たかだか h 程度」の誤差があることを表しています。

ところで, f(x+h) ではなく, f(x-h) として近似したものを後退差分※7)といいます。これまでの解説をもとに,後退差分による f′(x) の式を導いてみてください。これを問題としましょう。

※2)
difference approximation
※3)
Taylor expansion
※4)
O表記法。Big-Oh-Notation
※5)
または前進差分商(forward difference quotient)といいます。
※6)
truncation error
※7)
backward difference

問題 後退差分による導関数の近似式を導きましょう。

前進差分による導関数の近似式導出過程を参考にして,後退差分による導関数の近似式を導出しましょう。式69.1で, xx-hax と読みかえる他は,全く同様の操作です。

解説

問題 後退差分による導関数の近似式を導きましょう。

以下に導出の過程を示します。式の意味を確認しながら紙の上に書いていくと,すっきり納得出来るはずです。

今回はここまで

数値微分は今回解説したような式を使って計算します。しかし,前進差分,後退差分よりももう少し誤差を小さくできる「中心差分」という方法があります。また,解説の中で登場した「微少な量」は,具体的にはどのぐらい小さな量なのでしょう? Java言語ならば,Doubleを使うでしょうから,Doubleの最小値を使えば良いのでしょうか?いえいえ,実はそんなに話は簡単ではないのです。

次回は「中心差分」と「微少な量」の決定方法について解説します。

今回のまとめ

  • 前進差分による数値微分の計算式を導出しました。

著者プロフィール

平田敦(ひらたあつし)

地方都市の公立工業高等学校教諭。趣味はプログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

2010年版SEO体得講座

本連載では,いまや企業サイトの戦略の1つとして欠かすことのできないSEOについて,最新トレンドからすぐに使えるTipsまでを紹介します。

小型Linuxサーバの最高峰 OpenBlockS 600活用指南

搭載メモリの増加,CPUクロックの向上など,あらゆる面が強化された期待の新モデルOpenBlockS 600。この記事ではOpenBlockS 600の紹介から,活用するためのさまざまなノウハウを紹介していきます。

はじめMath! Javaでコンピュータ数学

プログラミング言語入門者向けに,知っていると役立つ数学的トピックスを紹介します。簡単な演習問題と解説で,即活用できる知識を目指します。

教科書には載っていない ネットワークエンジニアの実践技術

ネットワークエンジニア,インフラエンジニアのトラブル対応には,時には「教科書通りにいかない」テクニックが必要となります。資格試験では得られないこうした実践的な技術について,実例を元に紹介します。

Googleケータイ,世に現る

2008年9月,Googleが中心となって開発されている「Android」を採用した携帯電話「T-Mobile G1」が発表されました。本連載ではT-Mobile G1を中心にGoogleケータイに迫ります。

モバゲーオープンプラットフォームに挑戦!――面白法人カヤック流モバゲーオープンプラットフォーム企画と開発のイロハ

2010年1月にリリースとなったモバゲーオープンプラットフォーム。その制作企業であるカヤックが,アイデアを企画に落とし込み,開発までのノウハウを紹介します。

プロトタイピングツールSketchFlowを用いた,Silverlightアプリ開発

SketchFlowプロトタイプ作成からアプリケーション開発までをExpression Blend 3を使って実践的に解説します。

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス

最近のコメント