• ベストアンサー

Newton法について

数値計算の問題でわからないのがあるので教えてください。 a,bを実数とするとき、以下の連立方程式を多変数Newton法で解くための漸化式を書き記せ。 x^2-y^2-a=0 2*x*y-b=0 なんですが、Newton法の公式をどのように当てはめるのかわかりません。誰か教えてください、お願いしますm(__)m

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

  • ベストアンサー
  • kony0
  • ベストアンサー率36% (175/474)
回答No.2

stomachmanさんの#1の回答について、ささやかな疑問です。。。 > ((∂f/∂x)(x[n],y[n]))(x-x[n])+((∂f/∂y)(x[n], y[n]))(y-y[n])=f(x[n],y[n]) > ((∂g/∂x)(x[n],y[n]))(x-x[n])+((∂g/∂y)(x[n], y[n]))(y-y[n])=g(x[n],y[n]) これって、右辺にマイナスいりませんっけ? 私の感覚では、1次元の方程式f(x)=0を解くNewton法は、 点(x[n],f(x[n])におけるy=f(x)の接線を引き、それとx軸の交点を(x[n+1],0)とする方法であり、 f'(x[n])(x[n+1]-x[n])+f(x[n])=0 というものです。 同じように、f:R^n→R^n, x∈R^nに対しても、f(x)=0を解くNewton法は ∇f(x[n])(x[n+1]-x[n])+f(x[n])=0(←零ベクトル) でいけると思っているのですが。。。 ここで、∇f(x)はn次正方行列であり、そのi行j列成分は(∂f_i/∂x_j)としています。 ちなみに、stomachmanさんの表記と私の表記のあいだには、 f→f_1, g→f_2, x→x_1, y→x_2 の関係があります。

その他の回答 (3)

  • kei_
  • ベストアンサー率29% (5/17)
回答No.4

#2 さんの言うとおりマイナスがいりますね。 一般的にはニュートン法は、非線形連立方程式: f_i(x) = 0 for i = 1, 2, ..., N(ただし x は N 次のベクトル) を満たすような x の値を近似的に出す方法です。 任意の x をとったとき(ただしなるべく解の近傍の値)、 その点から δx (これもベクトル)移動した点での f の値は、 f_i(x+δx) = f_i(x) + (∇f_i)*(δx) + O(δx^2) となります。ここで∇は #2 さんと同じく微分を表しています。 また、* はベクトルの内積、O は誤差を表しています。 このとき、f_i(x+δx) をなるべく 0 に近づけたいわけですから、 f_i(x+δx) = 0 つまり f_i(x) + (∇f_i)*(δx) = 0 を満たすように、δx を求めればいいのです。 #1 さんの式にでいうと右辺の f や g が第一式の f_i(x) にあたり、 左辺の微分の項が、(∇f_i)*(δx) にあたります。 よって、#2 さんの指摘のとおり、#1 さんの式の右辺にはマイナスがつきます。

  • kony0
  • ベストアンサー率36% (175/474)
回答No.3

ということで、 縦ベクトルを[x,y]、正方行列を[(a,b),(c,d)]のように表記します。 (転置記号とか、面倒なのでつけません。行列は、1行目(a,b)、2行目(c,d)と読んでください) 今の点を[x,y]、反復の次の点を[x',y']とすると、 [(2x,-2y),(2y,2x)]{[x',y']-[x,y]}+[x^2-y^2-a,2xy-b]=0 より [x',y']=[(2x,-2y),(2y,2x)]^(-1)・[x^2-y^2+a,2xy+b] =(1/4(x^2+y^2))[(2x,2y),(-2y,2x)]・[x^2-y^2+a,2xy+b] となります。 とりあえず、[x,y]≠[0,0]と初期値を取れば、きっとどちらかの点に収束してくれるはずです。(一応Excelで確認したつもり・・・)

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.1

f(x,y)=0 g(x,y)=0 という連立方程式を解くのにNewton法を使う。 Newton法ってのは、解の近似値 (x[n],y[n])が与えられたときに、その点(x[n],y[n])における接平面で関数f,gをそれぞれ近似するんでした。だから ((∂f/∂x)(x[n],y[n]))(x-x[n])+((∂f/∂y)(x[n], y[n]))(y-y[n])=f(x[n],y[n]) ((∂g/∂x)(x[n],y[n]))(x-x[n])+((∂g/∂y)(x[n], y[n]))(y-y[n])=g(x[n],y[n]) という連立一次方程式が得られます。ここに ((∂f/∂x)(x[n],y[n])) てのはfをxで偏微分した導関数にx=x[n], y=y[n]を代入したものです。他も同様。 これをx,yについて解いた解を新しい近似値(x[n+1],y[n+1])とし、また繰り返す。ですから ((∂f/∂x)(x[n],y[n]))(x[n+1]-x[n])+((∂f/∂y)(x[n], y[n]))(y[n+1]-y[n])=f(x[n],y[n]) ((∂g/∂x)(x[n],y[n]))(x[n+1]-x[n])+((∂g/∂y)(x[n], y[n]))(y[n+1]-y[n])=g(x[n],y[n]) ということになっている。あとは x[n+1]=… y[n+1]=… という形に整理すれば出来上がりです。

makoto05
質問者

お礼

どうもご丁寧にありがとうございましたm(__)mおかげで参考になりました。

関連するQ&A

  • 最小2乗法における連立方程式の計算法を教えて下さい

    最小2乗法に関して E=Σ(y-ax-b)^2 ∂E/∂a=Σ(y-ax-b)×2×(-x)=0 ∂E/∂b=Σ(y-ax-b)×2×(-1)=0 ここまでは分かるのですが、aとbを求めるにあたって、恥ずかしながらどのように連立方程式の計算をすればいいのか分かりません。 どなたかこの連立方程式の計算過程を分かりやすく教えて下さい。宜しくお願い致します。 それとこの計算に関してある本を見たところ、Σb=n として計算するとありました。 なぜΣb=nとしていいのかも合わせて教えて頂けると嬉しいです。

  • 掃きだし法の問題について

    (1) x-2y+4z=3 2x+y-2z=1 -3x-y+2z=3 という連立一次方程式を吐き出し法によってもとめるという問題がわかりませんでした。 第2式と第三式を足して、x=-4 それを第一式と第2式に代入して計算すると、0=8となってyとzが求まりませんでした。 どこが誤っているのでしょうか (2) 3x+y+z+7w=5 x-y+3z+w=3 -2x-3y+4z-7w=-1 という問題がありますが、変数が4つあるのに式が3つしかなくて解けないとおもったのですが、 これはどのように求めるのでしょうか

  • Newton法の計算

    f(x)=xlogx-1=0という方程式なのですがNewton法というとき方でだれかといていただけないでしょうかおねがいします。

  • 数学の宿題に出てきた途中式です

    数学の宿題に出てきた途中式です 2a+2b+3c=15 …(1) 3a+5b+2c=19 …(2) 5a+3b+3c=20 …(3) (3)-(1) 3a+b=5 …(4) (1)×2 4a+4b+6c=30 …(1)' (2)×3 9a+15b+6c=57 …(2)' (2)'-(1)' 5a+11b=27 …(5) (5)に(4)を代入する。(b=-3a+5) 5a+11×(-3a+5)=27 5a-33a+55=27 -28a=-28 a=1 …(6) (4)に(6)を代入する。 3×1+b=5 3+b=5 b=2 …(7) (1)に(6)と(7)を代入する。 2×1+2×2+3c=15 2+4+3c=15 3c=9 c=3 よって、この連立方程式を満たすa、b、cの値は、a=1、b=2、c=3となる。 以下のURLの三ページと四ぺージ を見ていただいたらわかると思うのですが、式を加減した際には、式の数を減らしたらいけないと思うのですが…どちらが正しいか教えて下さい。 http://www.akita-pu.ac.jp/system/elect/comp1/kusakari/japanese/teaching/LinearAlgebra/2005/note/4/Slide03.html 1,2,3の式→4,5 の式 は三式から二式になったので、同値ではないということですか?さてここから本題です。この質問をヤフー知恵袋に投稿した所、以下の回答が得られました。 どちらのページも下の連立方程式ですよね? 2x+y=3 …(1) 3x-y=7 …(2) ただ、3ページ目は2つの式を加算した5x=10を解いたx=2が連立方程式の答えと言っているのです。 なので、式にあるyは存在しなくても一緒だと言っています。 2x=3 …(1) 3x=7 …(2) この連立方程式が成立すると言っています。 (1)はx=1.5、(2)はx=2.33...なので、違うxの値になるので、両方の式を満たすxの値ではなく、連立方程式は成り立っていません。 一方、4ページ目は、2つの式を加算した5x=10(2)'と元々の式(1)の連立方程式になっていて、x=2でyの値を計算しなさいと言っています。 何気なく頭の中で計算しているので、丁寧に説明されると混乱してしまうのですが、『+yと-yだから、y-y=0で、y=0とかyは計算しなくてイイと決めてしまってはダメですよ』という説明な なので、式にあるyは存在しなくても一緒だと言っています。 2x=3 …(1) 3x=7 …(2) この連立方程式が成立すると言っています。 (1)はx=1.5、(2)はx=2.33...なので、違うxの値になるので、両方の式を満たすxの値ではなく、連立方程式は成り立っていません 一方、4ページ目は、2つの式を加算した5x=10(2)'と元々の式(1)の連立方程式になっていて、x=2でyの値を計算しなさいと言っています。 『+yと-yだから、y-y=0で、y=0とかyは計算しなくてイイと決めてしまってはダメですよ』という説明なんです。 〔補足] 方程式は左右が等しい式で、連立方程式は左右が等しい式同士が等しい。 質問の式の右辺を左辺に移すと、 2a+2b+3c-15=0 …(1) 3a+5b+2c-19=0 …(2) 5a+3b+3c-20=0 …(3) となり、(1)=(2)=(3)になる。 これが、連立方程式です。 なので、すべての式が成立しないと連立方程式ではないので、URLの3ページ目にある、『同値ではない』という表現をされます。 ここからが僕の質問です。A=B=Cの方程式を解くということは、A=B,B=C,C=Aの中から適当に2組選んで解くことと同値であるということは知ってます。この問題集は補足の様に変形して、=0という形にして解いていることを暗黙の了解として省略しているのですか?僕の考え方が間違っているかどうか教えて下さい!ま また補足にある様に、連立方程式とは三元、四元連立方程式だろうが、=0などするようにして、すべて値が等しいように移行して解くということがそもそも連立方程式の正しい解き方なのですか?

  • 二次の連立方程式を解く数値計算法

    x^2 y^2 z^2 x y z で構成された二次の連立方程式を解く数値計算法ってありますか? もしあれば紹介してください 計算法の名称だけでもわかれば、細かい計算法は自分で調べますので

  • 化学平衡式の近似

    「化学」の方でレスポンスがないのでクロスポストです。両方見てる方、すみません。 酵素反応のシミュレーションをしていて、シミュレータには数値積分の計算エンジンを使っています。 一部の反応は酵素の関与しない化学平衡反応で、 A x B = k1 x C B x D = k2 x A . . . A + C + D + F + G = c1 A + B + 2E = c2 . . . (A,B,C....は変数、k1,k2...,c1,...は定数) といった式で表現されます(実際には連立16元方程式)。 この連立方程式を近似的に解きたいのですが、こうした形式の連立方程式を、連立微分方程式に近似するような数値計算的方法やアルゴリズムがあればご教授ください。他の数値計算法でも構いません。  Newton-Raphson法で正面からぶつかるのはやってみましたが、それだと計算量が大きすぎるのです。ひとつひとつの平衡式は単純なので、そのへんを活かして、うまく計算量を減らす工夫がないものかと思案しています。  参考書や論文、キーワード等糸口になりそうなものでも構いませんので、ご教授ください。

  • e^(ax)*Sin(bx)=cの解き方。

    eをネイピア数、a、b、cを実数として下の方程式をxについて解く方法があれば教えてください。 e^(ax)*Sin(bx)=c いろいろ変形してみたのですが、自分では解けそうにありませんでした。 数値計算(Newton法など)以外で、 つまり、 x=・・・ と解く方法があれば教えてください。 また解けないのであれば、解ける方程式と解けない方程式の違いなどを教えてください。よろしくお願いします。

  • ニュートン法の問題です!

    ニュートン法の問題です! わかる方がいたらおしえてくださいこまってます! f(x)=-1+x+x2とおいて、newton法を用いてf(x)=0の解を求めよ。newton法で使用する漸化式と初期値x0=1としたときの計算過程と結果を示しなさい。 とけるかたがいたら本当におねがいしますたすけてください

  • 連立二次方程式を解くには・・・

    多変数の連立二次方程式を解きたいのですが, 何方かご教授いただけないでしょうか. (a1*x+b1*y)^2+(a1*z+b1*w)^2=E1^2 (a2*x+b2*y)^2+(a2*z+b2*w)^2=E2^2 (a3*x+b3*y)^2+(a3*z+b3*w)^2=E3^2 (a4*x+b4*y)^2+(a4*z+b4*w)^2=E4^2 条件として,   定数  a1,a2,a3,a4,b1,b2,b3,b4,E1,E2,E3,E4    (a1≠a2≠a3≠a4≠b1≠b2≠b3≠b4≠E1≠E2≠E3≠E4) 未知数 x,y,z,w (x≠y≠z≠wであり,有理数)です. 方程式4つに対して,式が4つあるので解けるとは思います. この方程式を解く方法として,外接球法を用いた方法を考えているのですが, イマイチ理解できないため,他にこの多変数の連立二次方程式を解く方法や近似解法などの計算方法がありましたら, 何方かご教授くださいますようお願いします. 計算方法だけでも教えていただいたら,あとは自分で調べます.

  • 4次方程式のNewton法について

    初めまして、こんにちは。 現在課題で4次方程式をNewton法を使い求めるプログラムを作っているのですが一向に上手くいきません。 お手数をお掛けするかもしれませんが、Newton法を使って解くプログラムを知っていたらお願いします m__m ※:ax^4+bx^3+cx^2+dx+e=0 の a,b,c,d,eの値を入力して解をNewton法を用いて解くという事になっています