• 締切済み

ベクトルの積分『∫(A→B)Fdr』の計算の仕方を教えてください。

皆様、こんにちは。 ベクトル積分『∫(A→B)Fdr』の計算の仕方を教えて頂きたいのですが。 A、Bは空間の座標でそれぞれ(Xa、Ya、Za)、(Xb、Yb、Zc)。 F、rも3次元のベクトルで、 rは空間の位置のベクトルです。 Fの例として Fx(Fのx座標)=Cx/(x^2+y^2+z^2)^(3/2) Fy(Fのy座標)=Cy/(x^2+y^2+z^2)^(3/2) Fz(Fのz座標)=Cz/(x^2+y^2+z^2)^(3/2) (Cはただの定数です。) で教えて頂けるとありがたいです。 (この例だと答えが分かっていますので。) 多分この例の答えは ーC/(Xa^2+Ya^2+Za^2)^(1/2)+C/(Xb^2+Yb^2+Zb^2)^(1/2)です。 少し数値が複雑そうですが、物理の保存力の基本問題です。 ベクトルの積分の計算方法をご存知の方やり方を教えて頂けないでしょうか。よろしくお願いします。(2次元の時は何となく分かった気になっていたのですが、3次元になって全く分からなくなってしまいました。)

  • vigo24
  • お礼率87% (859/977)

みんなの回答

  • proto
  • ベストアンサー率47% (366/775)
回答No.1

Fが物理で言うところの保存力ならば積分は経路に依らないから、計算しやすいように経路を決めてやればよいです。 具体的には  (Xa,Ya,Za) → (Xb,Ya,Za) → (Xb,Yb,Za) → (Xb,Yb,Zb) とでもすればok (Xa,Ya,Za)→(Xb,Ya,Za)の区間では、dr=(dx,0,0)ですのでF=(Fx,Fy,Fz)との内積を取るとFx・dxになります。 結局、上記の積分は   ∫[Xa→Xb]{Fx}dx と書き換えられます。 ただしFxはy=Ya,z=Zaに値を固定してxの関数として積分していることに注意してください。 残りの区間も同様に、 (Xb,Ya,Za)→(Xb,Yb,Za)の区間は   ∫[Ya→Yb]{Fy}dy (但しx=Xb,z=Zaに固定) (Xb,Yb,Za)→(Xb,Yb,Zb)の区間は   ∫[Za→Zb]{Fz}dz (但しx=Xb,y=Ybに固定) となります。 最後に全ての区間での値を足し合わせれば終わりです。 またはこのように3区間に分けずに、 AとBをつなぐ直線を考えて   r = (B-A)t + A (0≦t≦1) と置いて、tに変数変換する方法も考えられます。 このやり方の場合は、Fもdrもtの関数として成分ごとに書き出してみてから内積を取り積分すれば、tについての1変数の積分に置き換えられます。

vigo24
質問者

お礼

大変詳しいご説明、どうもありがとうございます。 まだ完全に分かったわけではありませんが、protoさんの解説を読み直してじっくり考えてみます。 この度はどうもありがとうございました。

関連するQ&A

  • エクセルを用いた3次元座標の回転・平行移動の方法: 対応する座標点間距離の最小化

    対応する3つの3次元座標間の最小二乗距離の総和を最小化する方法を教えていただけないでしょうか。 それぞれ3座標点を含む2つのデータセットがあるとします。 片方のデータセットを回転・平行移動させることにより、 対応する3座標点間の最小二乗距離の総和を最小化したいのですが、 その方法を教えてください。 例: データセットA:(xa1, ya1, za1), (xa2, ya2, za2), (xa3, ya3, za3) データセットB:(xb1, yb1, zb1), (xb2, yb2, zb2), (xb3, yb3, zb3) データセットBを回転・平行移動したもの:(xb1', yb1', zb1'), (xb2', yb2', zb2'), (xb3', yb3', zb3') そして対応する3座標点間の最小二乗距離の総和: (xa1-xb1')^2+(xa2-xb2')^2+(xa3-xb3')^2+ (ya1-yb1')^2+(ya2-yb2')^2+(ya3-yb3')^2+ (ya1-yb1')^2+(ya2-yb2')^2+(ya3-yb3')^2 を最小化したい。 つまり、これを最小化するためのデータセットBの回転・平行移動の方法をしりたいのです。 よろしくお願いします。  

  • 2直線が直交する点の求め方が分かりません

    数学で分からない問題があるので質問させていただきます。 3つの点 A(Xa,Ya,Za)、B(Xb,Yb,Zb)、C(Xc,Yc,Zc)与えられているとして、 点A,Bを通る直線ABに、点Cから垂直に線を引く場合に、 2直線の交点D(X,Y,Z)の座標を求める方程式が分かりません。 (Xb-Xa)(X-Xc)+(Yb-Ya)(Y-Yc)+(Zb-Za)(Z-Zc)=0 一つは思いつきましたが、変数が3つあるのであと2つ 式が必要になると思います。 分かる方がいたら教えていただけませんか。 よろしくお願いします。

  • 3次元空間での平面の式の算出

    ある3次元空間内に原点と点A(xa, ya, za)を通る直線と任意の点B(xb, yb, zb)があるとします。 点Bから直線への垂線の足をC(xc, yc, zc) としたとき, まず, ・ C(xc, yc, zc)を xa, ya, za, xb, yb, zb であらわしたい。 次いで, ・BおよびCを含む平面の式を導出したい。 以上のような問題なのですが,上手く算出することができません。 アドバイスをいただけたらと思い,書き込みさせていただきました。 よろしくお願いします。

  • 座標値を求める計算式が知りたい!

    下図のように、点座標、点A(Xa,Ya)、点B(Xb,Yb)、点C(Xc,Yc)が与えられているとき、D点の座標値、Xd, Ydを求める式を教えてください。

  • ベクトル解析の体積積分に関する質問です。

    自分なりに答えを出してみたので、検証をお願いいたします。 三次元空間(x,y,z)中の各点で次のように定義されたベクトルF(x,y,z)を考える。 F(x,y,z)=(2x^2z, -y^2, 2yz) また、三次元空間の立体として、(0,0,0)(1,0,0)・・・(1,1,1)を頂点とする一辺の長さが1の立方体を考え、それをVと呼びます。 (1)このベクトル場の発散、divFを計算せよ。 (2)divFを立方体Vの内部全体で積分せよ。 自分の答え: (1) 4xz (2) 1 以上よろしくお願いいたします。

  • 55 ベクトルの問題です!! 単位ベクトル??

    ベクトル=a→=(2.1) b→=(-1,2)がある。x、yを正の実数とし、ベクトル3xa→+yb→は単位ベクトルで、かつベクトルxa→-2yb→に垂直であるとき、 x、yの値を求めよ。 この問題わかりません。 単位ベクトルに変換して、 垂直条件の公式を用いると思うのですけど、 式がつくれませんでした>_<  3xa→+yb→の式を成分aとbを代入すると。。 3x(2.1)+y(-1.2)ですか? そのあと、xa-2ybの式もつくり、 以上上の二つの式を最後は垂直の式にあてはめるのですか?? でも式がこれ以上進める事が(作る事が)できませんでした。 宜しくおねがいします!

  • 3D座標上のベクトルをを2D平面に投影・・・

    まず、3次元座標上のあるベクトル(例:(x、y、z)=(1,1,1))をx-z平面上に投影します。 その投影された、ベクトルとx軸の成す角度を、ラジアンか角度で算出したいのですが、C++でどう書いていいのかわかりません。 アルゴリズムがわかっていても、C++でかけないという初心者です。 誰か、算出の方法を教えてください。お願いします。

  • ゼネラルフローチャートの作り方。

    数値解析実習という授業で「補間法」をやっているのですが このプログラムのディテールフローチャートは書けるのですが ゼネラルフローチャートをどのようにかいていいのかがわかりません。 「開始」  ↓ 「変数宣言」  ↓ この先どうなるのでしょう??? #include <stdio.h> #include <math.h> void main(void) { double xa,xb,xc,h; double ya,yb,yc; double xx,yy,dela,delb,del2a; printf("3点のx座標a,b,c="); scanf("%lf%lf%lf",&xa,&xb,&xc); printf("3点のy座標fa,fb,fc="); scanf("%lf%lf%lf",&ya,&yb,&yc); printf("補間点のx座標x="); scanf("%lf",&xx); h=xb-xa; dela=yb-ya; delb=yc-yb; del2a=delb-dela; /*二次補間公式*/ yy=ya+dela/h*(xx-xa)+del2a/(2.0*h*h)*(xx-xa)*(xx-xb); printf("補間点f(%lf)=%lf\n",xx,yy); } ディテールは細かく書くだけっぽいのでそのまま出来たのですが・・・。 ゼネラルのほうがおおまかな流れを書くみたいですがどこを書いて良いのかわかりません。 教えてください。

  • 直角座標系の回転の計算方法

    下の計算は直角座標系の回転の計算(∇×A)の一部です。 i_x(∂/∂x) × (i_yA_y) i_x × ((∂i_y/∂x)Ay + i_y(∂A_y/∂x)) =i_z(∂A_y/∂x) という風に計算したのですが、 この計算手順はあっていますでしょうか? 答えはあっていると想うので、計算手順があっているかどうか知りたいのですが・・。 i_x、i_y、i_zは単位ベクトルです。 ベクトルA = i_xA_x + i_yA_y + i_zA_zで表されます。

  • ベクトルの問題

    友人からメールで質問されたのですが、 何せ明日から院試でとっても余裕がありません。 どなたか回答をご教示いただけませんか。 そのままコピペしておきます。 x、bはn次元縦ベクトルy、cはn次元横ベクトルとします。 Aはn×n行列とします。 ≧などはそれぞれの成分について不等号が成り立つことを表します。 x≧0、Ax≦bとするときcxの最大値をzとする。・・・* y≧0、yA≧cとするときybの最小値をwとする。・・・** このときw=zとなる。 これを証明してほしいんだけど。 双対問題ってゆうらしいんだけど。 ∀x ∀y cx≦yb ってのは **に右からxをかけたのと*に左からyかけて cx≦yAx≦ybってなるから示せたんだけど ∃x ∃y cx=yb ってのがしめせないんよねー。 全部実数の話ね。