• ベストアンサー

最小二乗法 ニュートン法

ニュートン法を使うとき f(x+Δx) = f(x)+f'(x)Δx+・・・テイラー展開すると思います。 このとき、xは近似解x(n)のことで、x+Δxは新しい近似解x(n+1)のことでいいのでしょうか? 後、図1の操作と上記のテイラー展開をつかって新しいx(n+1)を求める方法が結びつきません。 わかる方お願いいたします。

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

  • ベストアンサー
  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.1

その通りです。 f(x+Δx) = f(x) + f'(x)Δx + O(Δx^2) において、 x[n+1] = x + Δx, x[n] = x と置けば、 f(x[n+1]) = f(x[n]) + f'(x[n])(x[n+1]-x[n]) + O(Δx^2) から x[n+1] = x[n] + {f(x[n+1]) - f(x[n]) - O(Δx^2)} / f'(x[n]) と変形できます。 f(x[n+1]) が十分小さく、x[n] が既に解にある程度近いと考えれば、 f(x[n+1]) ≒ 0, Δx ≒ 0 と近似したことになるので、 x[n+1] ≒ x[n] + {0 - f(x[n]) - 0} / f'(x[n]) です。 これが、ニュートン法の漸化式です。

wfa1wafa
質問者

お礼

テイラー展開を変形したら、直線式の形になるということですね。 お二人ともありがとうございました。

その他の回答 (2)

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.3

同じことですよ。 A No.2 の式 (2) は、 一次のテイラー近似 (1) を変形したものだから。

  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.2

>ニュートン法を使うとき f(x+Δx) = f(x)+f'(x)Δx+・・・テイラー展開すると思います。 思いません。単なる微分です。 曲線y=f(x)の点P(x1,f(x1))における接線は y=f(x1)+(x-x1)f'(x1)    (1) f(x)=0の解はy=f(x)がx軸と交差する点を求めることであり、その代役として接線がx軸と交差する点 を求めます。つまり(1)においてy=0とすると x2=x1-f(x1)/f'(x1) (2) なる点が得られ絵をかいてみるとわかるようにx2はx1より解に近づいていることがわかります。 点(x2,f(x2))においても同様の操作を繰り返し、さらに解に近づくことだできます。 点P(x1,f(x1))を適正にとると通常は数回から数10回ぐらいで収束し、数値解を得ることができます。 ニュートン法においては初期値としてのx1のとり方がひとつのポイントになります。 >後、図1の操作と上記のテイラー展開をつかって新しいx(n+1)を求める方法が結びつきません。 わかる方お願いいたします。 要するに式(2)に還元されます。 x(n+1)=x(n)-f(xn)/'f(xn) n=1から初めて繰り返し計算をして解に接近していくことを意味します。

関連するQ&A

  • 最小二乗法 ニュートン法

    ニュートン法で最小二乗法を使うとき、x+Δxを近似解として、テイラー展開して f(x+Δx)=f(x)+f’(x)Δx この式から新しい近似解を得ると思います。 この時のfは何の関数なのでしょうか? 残差の二乗和でいいのでしょうか? わかる方お願いします。

  • 数値計算 ニュートン法に関する問題です

    この問題のやり方を教えてください nの平方根をニュートン法で求める.n=1 √n が f(x)=(x^2)-n=0 の解であることを利用し、ニュートン法を用いて √n を求めるための漸化式を示せ. よろしくおねがいします 

  • ニュートン法(2次)よりも高次収束の漸化式を求める方法は?

    ニュートン法はf(x)をテイラー展開した中の初めの2項を用いることで Xn+1 = Xn - f(Xn)/f'(Xn) という漸化式を取得します。これは2次に収束する漸化式です。 さらにベイリー法ではテイラー展開の第三項までとニュートン法の漸化式を用い3次収束の漸化式 Xn+1 = Xn - 2f'(Xn)*f(Xn)/(2f'(Xn)*f'(Xn)-f''(Xn)*f(Xn)) を得ています。 という所までは分かり、いざ3次の漸化式を作ろうと思ってもうまくいきません。 例えば http://www.finetune.co.jp/~lyuka/technote/fract/sqrt.html にはAの逆数1/Aを求めるための漸化式が5次まで掲載されています。 Aの逆数はf(x)=1-1/(1-Ax)を用いることで2次までは求まります。しかし3次以降をどうやって導くのかが分かりません。どなたか導き方のヒントでも構いませんので教えていただけないでしょうか?よろしくお願いします。 p.s. 平方根の逆数の係数(5/16や35/128など=(2n)!/(n!*n!*2^(n+1))から考えるに f(x)のn回微分=-n!*a^n*(1-ax)^(-n-1) とテイラー展開でなんとかなるような気もするのですが...

  • ニュートン法について

    ニュートン法について 3次方程式x^3-30x^2+200x=0は0,10,20を根とする。 このことを使って、ニュートン法を1回用いることにより、x^3-30x^2+200x+1=0の根で10に近いものの近似値を求めよ。 ちなみにニュートン法は「aがf(a)=0の根に十分近ければ、a-f(a)/f’(a)は更に精密な近似値となる」です。 数学に詳しい方に答えていただけると幸いです。 宜しくお願いいたします。

  • ニュートンラフソン法について

    ニュートンラフソン法についての質問です。ニュートンラフソン法を利用するプログラム課題は理解できるのですが、別の問題の一つである次の問題をどう考えていけばよいのかわからないです。 「次の連立方程式f(x,y)=0、g(x,y)=0に対するニュートンラフソン法の反復公式を誘導せよ。」  参考書を調べますと一般のニュートンラフソン法はテーラー展開を用いて証明しているので、これも何らかの形でテーラー展開を利用するのではないかと思いますが、そこから先へ進めなくて困っています。よろしければどなたかコメントお願いいたします。

  • ニュートン法について

    ニュートン法の問題ですが、3の立方根をニュートン法で計算する問題で初期値がX0=1で繰り返し3回までの経過を示す問題です。 f(x+n)=fx(n+1)/fx'(n+1) この式にf(x)=3^(1/3) を代入すればいいのですか? わかる方お願いします。

  • ニュートン法の問題がどうしてもわからないので教えてください。

    非線形方程式の解を求めるアルゴリズムのひとつに、ニュートン法と呼ばれる方式がある。この方法ではf(x)=0の解の近似値を次の漸化式から求める。 x_(i+1) =x_i - f(x_i)/f'(x_i) なぜこのアルゴリズムで解を得られるのかをf(x)=x^2 - e^x -2 =0 を例に説明せよ。 という問題です。 どなたかわかる方がいたらお願いします。

  • ニュートン法をC言語でプログラム

    方程式 cos^2x-0.5=0 (0<x<π) の解をニュートン法で求める という問題をC言語のプログラムを作り計算したいのですが分かりません。 自分で考えてみたプログラムは以下の通りです。 #include <stdio.h> #include <math.h> #define f1(x) cos(x)*cos(x)-0.5 #define f2(x) sin(2*x) /* ニュートン法による方程式の解 */ main() { double x0,x1,a,b,c,d,g,n; a=1; x0=0.7; n=0; while(a>0.0001){ b=x0; d=f1(b); g=f2(b); x1=x0-d/g; c=x1; a=f1(c); n=n+1; printf(" n= %f x1=%f x0=%f\n",n,x1,x0); printf(" a= %f → 解 x= %f \n", a,x1); x0=x1; } } 自分としてはこれが精一杯で、何故間違ってるのか、何をどうすればいいのか、さっぱり分かりません。どういったところが間違ってるのか可能性だけでも示して頂ければ幸いです。 参考として、ニュートン法によるプログラム例として書かれていたものを上げさせて頂きます。 例: e^x-3=0 の解をニュートン法により計算する。 #include <stdio.h> #include <math.h> #define f1(x) exp(x)-3 #define f2(x) exp(x) /* ニュートン法による方程式の解 */ main() { double x0,x1,e,a,b,c,d,g,n; a=1; x0=3; n=0; while(a>0.0001){ b=x0; d=f1(b); g=f2(b); x1=x0-d/g; c=x1; a=f1(c); n=n+1; printf(" n= %f x1=%f x0=%f\n",n,x1,x0); printf(" a= %f → 解  x= %f \n", a,x1); x0=x1; } }

  • ニュートン法

    excelVBAを使っています。 ニュートン法を使って3次方程式を解こうとしています。 例題)x^3-6x^2+11x-6=0    x=1,2,3 初期値x0によって、解がx=1,2,3のどれかに収束します。 ここで、全ての実数解を求める考え方をご教授下さい。 f(x)=x^3-6x^2+11x-6=0の解x1が求まった後、 f(x)=(x-x1)g(x)なるg(x)を求めるといったことが、あるサイトに書かれてあったのですが、なぜそうなるのか理解できません・・・

  • ニュートン法、ホーナー法で発散を避ける必勝法は?

    ニュートン法、ホーナー法で、解の近似値を発散させない方法は? : ニュートン法・ホーナー法では、近似の初手として選び出す推定値である a[1]  の採り方がまずいと、解 α = a[∞]   の数値が発散して、近似に失敗するそうですが、それを避ける為の必勝法・万能薬の様な秘策・妙案は有りますでしょうか。