• ベストアンサー

全微分や勾配ベクトルの幾何学的な意味

数学があんまり得意じゃないのに、今ライブラリを使って3Dのプログラミングで遊んでるんですけど 数学として、行列とか三角関数とか普通の微分とかは、座標系の回転だとか微分でキャラクタの進行方向の決定とか、直接使うのですんなりイメージできるんですけど 具体的な例で言うと全微分や勾配ベクトルってどういう場面でつかうんですか?教えてください、イメージできなくて困ってます。偏微分はあるパラメタにおけるニ変数関数の断面という理解は出来るんですが・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.1

数学の全微分の説明の所に良く絵が書いてあると思いますが、・・・ 3次元空間xyzをイメージしましょう。xy平面をキャラクタが移動するとキャラクタの身長zが変化します。キャラクタの身長はz=f(x,y)で決まります。キャラクタが現在(x0,y0)にいます。するとそこでの身長はz0=f(x0,y0)で求められます。(x0,y0)からx軸に平行に微小量Δxだけ移動するとキャラクタの身長はどれだけ変化するかというとδf(x,y)/δx・Δxだけ変化します。つまり、z0からz0+δf(x,y)/δx・Δxになるというわけです。(x0,y0)からy軸に平行に微小量Δyだけ移動するとキャラクタの身長はどれだけ変化するかというとδf(x,y)/δy・Δyだけ変化します。ではxもyも同時に微小量Δx、Δy変化したらキャラクタの身長はどれくらい変化するかというとδf(x,y)/δx・Δx+δf(x,y)/δy・Δyだけ変化します。 なぜx方向の変化量とy方向の変化量の単なる和で良いかというと、f(x,y)の微小な領域ではそこだけ見れば平面だとみなされるからです。地球は実は丸いけれども地域の地図は平面として売られているということです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

勾配ベクトルの一次元版は 微分そのものです。つまり、 y=f(x) のとき、x が Δx だけ微小変化した場合、2次以上の変化を無視すると y の微小変化は Δy = (df(x)/dt)・Δx 勾配ベクトルの2次元版は山登りの坂のイメージです。勾配ということばは ここから来ていて、坂の傾きと坂の方向を合わせたものが勾配ベクトルです。 坂にボールを置くと転がってゆく方向とは逆方向が勾配ベクトルです。 z=f(x, y) とすると、勾配ベクトルは grad f = (∂f/∂x, ∂f/∂y) x, y が Δx, Δy だけ微小変化した場合 z の微小変化は 2次以上の変化を無視すると Δz = (∂f/∂x)Δx + (∂f/∂y)Δy (Δx, Δy) = ΔX とすると Δz = (grad f)・ΔX という形になり、一次元の場合と式がほぼ同じ形になります。 つまり勾配は微分を多次元に拡張したものなんです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 下の関数の勾配ベクトルとヘッセ行列の求め方を教えて下さい!

    下の関数の勾配ベクトルとヘッセ行列の求め方を教えて下さい! 勾配ベクトルとヘッセ行列の求め方は大体わかっていると思うのですが、微分の仕方があやふやな為よくわかりません(;_;) よろしくお願いします!

  • ベクトルによる微分

    (1) あるスカラー a(1×1) をベクトルb (k×1) で微分するときに  ※( )内は行列のサイズです※ da/db = [da/db_1, da/db_2,....da/db_k]' というように一階の導関数ベクトルができますが、講義資料によりますと、このときの導関数ベクトル(正式な呼び名は知りませんが)のサイズは、bと同じ、つまり (k×1)の列ベクトルになるとなっています(上野表記に転置記号をつけたのはそのためです)。 (1×k)の行ベクトルにしないことに理由はあるのでしょうか? それともbに合わせると決まっているだけと考えてよいのでしょうか? (2) また、(n×1)のベクトルaを、(k×1)のベクトルbで微分することを考えた場合に、 da/db は (n×k)で定義されることについてはどうでしょうか? これも決まりと思って良いのでしょうか? (3) 最後に、(n×m)の行列Aを(k×1)のベクトルbで微分する、というような場合に、どのようなサイズのどのような行列になりますか? またはそもそもそういうことを考えますか?

  • 勾配ベクトルについて

    勾配ベクトルと方向微分についての問題です。(2変数の場合) 平面状の点(x0、y0)と直線ax+by=cの距離dは d=|ax0+by0-c|/√a^2+b^2  ・・・★  となる事を示す。 直線ax+by=cを平面z=ax+byの等高線(高さc)と考えるとき、 (x0、y0)を通り、ax+by=cに平行な直線は ax+by=(1) であるので、2つの等高線 ax+by=cと ax+by=(1)との高さの差(正の値)は(2)となる。 2変数関数 ax+byの勾配ベクトルの大きさ(3)は(4)を表すから、点(x0、y0)と直線ax+by=cの距離をdとすれば、 (3)=(6)/(5)となる。 これにより★が成り立つ。 (4)には言葉が、それ以外は数式が入るようです。 どなたか、よろしくお願いします!!

  • 共役勾配法を用いた最適化について

    弾性体の変形を見るために,停留ポテンシャル法を用いようとしているのですが,その際に目的関数にひずみエネルギーをとり 独立な24変数の関数の極小値を共役勾配法で求めようとしています. Hesse行列を手計算でだし,最適化を行うプログラムを書いたのですが どうも上手くいきません. 下にプログラムの一部分をのせます. 共役勾配法について勘違いしている可能性もあるので 問題点を教えて頂ければ幸いです. x_vectorは24変数ベクトルで,dは探索方向,HはHesse行列です. for(i=0;i<10;i++) { lambda = (x_vector*d)/(d*H*d); x_save_vector = x_vector; x_vector=x_vector - lambda*H*d;//変数べクトル再設定 if(i==0) { // 初期値 gamma = 1; } else { gamma =x_vector*x_vector/(x_save_vector*x_save_vector); } d = x_vector + gamma*d;//探索方向再設定 }

  • 「vector< vector<double>>からdouble*への

    「vector< vector<double>>からdouble*への変換につきまして」 C++の行列計算のライブラリとして以下の関数を使うことになったのですが、 //matA*vecB=vecX void CalcMatrix(int rows, double* matA, double* vecB, double* vecX); この引数として vector< vector<double>> で定義した変数を渡す方法はありますでしょうか? もし御座いましたらご教授御願い致します。

  • 複素ベクトルの微分、最小二乗誤差法(MMSE) 

    最小二乗誤差法を用いて評価関数を最小にする値を求めようとしています。 この評価関数が複素ベクトルと複素行列で構成されているので微分できずに困っています。 何冊か本を読んだのですが、この複素ベクトルで構成された式を微分する際、なぜかベクトルの共役をとって微分していました。 なぜ共役をとって微分するのかが全く分かりません。 どなたか知っている人がいらっしゃいましたらよろしくお願いします。 例:J=w'Rw-w'r-r'w ・・・(1) J:評価関数 w:ウエイトベクトル R:行列 r:ベクトル ':複素共役転置 この(1)を最小にするようなwは、 Jをwで微分してその値が0という条件を使うと思います。 しかし大抵の本のやり方はwの共役で微分していました。ここが分かりません。何かメリットでもあるのでしょうか?

  • 偏微分について

    偏微分をこの前習ったのですが、いまいちよく分かりません><どなたか手助けお願いいたします。 位置ベクトルrの独立変数はデカルト座標(x,y,z)で、 Δr/Δx=lim {r(x+Δx,y,z)-r(x,y,z)}/ Δx と、これでよいのでしょうか??(極限はΔx→0です) またデカルト座標(x,y,z)、極座標(r,θ,Φ)について、デカルト座標を極座標の関数とし、または極座標をデカルト座標の関数として偏微分を行うときに、 Δx/Δθ=rcosθ×cosΦ Δy/ΔΦ=rsinθ×cosΦ Δz/Δr=cosθ でよいのでしょうか?? あと、これの逆の Δr/Δy,Δθ/Δz,ΔΦ/Δx のやり方が分かりません。 どなたかよろしくお願いいたします。

  • 偏微分の問題

    物理学基礎論で、偏微分を習いましたがよく分かりません>< 今朝、数学のジャンルで質問させていただきましたが、質問の意味が分からないと言われたので、問題ごとこちらに質問させていただきます。 1、次の偏微分を求めよ。ただし位置ベクトルrの独立変数はデカルト座標(x,y,z)である。 ∂r/∂x これに対し私の答えは・・・ Δr/Δx=lim {r(x+Δx,y,z)-r(x,y,z)}/ Δx と、これでよいのでしょうか??(極限はΔx→0です) 2、次の偏微分を求めよ。ただし()-()ではデカルト座標xyzを極座標rθΦの関数とし、()-()では極座標rθΦをデカルト座標xyzの関数として微分を行うこと。 ()Δx/Δθ=rcosθ×cosΦ ()Δy/ΔΦ=rsinθ×cosΦ ()Δz/Δr=cosθ これでよいでしょうか・・・?? ()Δr/Δy=y/√(x^2+y^2+z^2)=y/r ()Δθ/Δz ()ΔΦ/Δx ()()がまったく分かりません^^;たとえば、()ではtanθを微分したらよいのでしょうか?? どなたかよろしくお願いいたします。

  • フォートラン77での微分と行列

    フォートラン77で、数学的な 微分 と 行列 をどのように表現したらいいのか教えてください。 プログラミング初心者なのでこの質問の仕方が正しいのかもわかりませんがお願いします。

  • 2階微分は図形的に何を示す?

    変数xから成るn次元(n>2)の関数yをxについて2階微分することは 図形的には何を表すのでしょうか? もし、関数yをxについて1階微分した結果をdydxとすると、 dydx>0ならば、これは関数yの勾配を上る方向になり、 dydx<0ならば、これは関数yの勾配を下る方向になりますよね。 このような状況で2階微分が図形的に何を意味するのか気になったので ご質問しました。 回答よろしくお願いします。