• 締切済み

最小値探索アルゴリズム(修正POWELL法、準ニュートン法、修正ニュートン法)

f(x)=100(x2-x1^2)^2+(1-x1)^2 のバナナ関数において、 初期点(-2 4)から ・修正POWELL法 ・準ニュートン法 ・修正ニュートン法 の収束の様子をプログラミングし考察しなければならなくなりました. ですが、全く検討が付きません.(^^;) まず、修正POWELL法を考えたのですが、 参考文献やサイトが見つからず、 唯一見つけた文献で、始めの 「1次独立なn個の長さ1の直交座標方向ベクトルd」 の意味が分からず止まっています. 修正POWELL法のそれ以降の意味はなんとなく理解してきました. どなたか、上記の3つの方法を解説をしていただけませんでしょうか? 申し訳ありません. また、もしソースを公開しているサイトがあれば、助かります 当方、C&C++、VBが理解できます.

  • J2J
  • お礼率77% (7/9)

みんなの回答

noname#101087
noname#101087
回答No.1

「Optimization Toolbox」という商品の解説ページ(Cybernet)で、Overview 向きです。(解説はしきれません。あしからず)  http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/optim/?/matlab/support/manual/r14/toolbox/optim/tutoric3.shtml >Optimization Toolbox User's Guide / 標準的なアルゴリズム の中の「制約なしの最適化」を選んでみてください。 >原点の回りで曲率が歪んでいるために、制約なしの例題の中で悪名高いもので、バナナ関数として知られている.... ・ライン探索法 : Fletcher & Powell コンビの Fletcher の著作を参照。

J2J
質問者

補足

ありがとうございます. 修正POWELL法=共役勾配法と理解して、 すこしトライしてみます. ありがとうございました^^

関連するQ&A

  • 最小二乗法 お願いします。テスト前で急いでいます

    N個の点列(x1,y1),(x2,y2),,,,,,,(xn,yn)に対する、三次の最小二乗法を求める式を教えてください

  • 非負最小2乗法のコーディング

    非負条件の最小2乗法のプログラムを作成 したいのですが,参考文献やプログラムが あれば,教えて下さい。考え方のヒントでも よいです。 具体的には,関数f[{x}]=|[A]{x}-{b}|^2・・・(1) がxi>=0(i=1,2,..,n)・・・(2)の条件で, 最小となる{x}を求めるという問題を解くプログラムを 作りたいと考えています。 ここで,{x}=(x1,x2,...,xn)    {b}=(b1,b2,...,bm)    [a]は サイズm x nのマトリクス(m>n) であり,[A]および{b}は既知です。 条件(2)が無い場合の最小二乗のプログラムは 作成できますが,条件(2)を満足させるという条件がある 場合には,その条件を具体的にどのようにプログラム化 するのか不明であり質問した次第です。 宜しくお願いします。

  • 固有ベクトルの直交条件について

    実数を要素とするn×nの対称行列Aの異なる固有値k1、k2の固有ベクトルとしてそれぞれx1、x2が存在するとき、 x1Tx2=0・・・(1) (Tは転置です。x1の転置。) が導ければx1とx2は直交することが証明できるらしいのですが、なぜ(1)の式が成り立つときx1、x2は直交すると言えるのでしょうか? 宜しくお願いします。

  • ニュートン法

    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)を求めるといったことが、あるサイトに書かれてあったのですが、なぜそうなるのか理解できません・・・

  • 最小二乗法の中に登場する直交階乗多項式について

    C.R.ワイリー著「工業数学<上>」という本で数学を勉強しているものです。最小二乗法という節の中に、直交多項式の定義が出てきました。この式の導出方法は、W.E.Milneの文献を参照せよと注意書きがありましたが、英語が読めないので、同じ出版会社から出ている参考書を探し、幸いにも導出方法が載っていました。しかし、この中でもどうしても分からない部分があり質問します。内容は、以下の通りです。途中導出過程は、長いのと、この質問箱では、表記に限界があるので、はぶきます。知りたいという方は、おっしゃっていただければ、強引にでも書きますが・・・。この道に明るい方、納得できる回答をよろしくお願いします。 定義: Σ_(x=0)^n P_(j,n)*P_(k,n) = 0 (j≠k) 参考書によるこの式の導出方法: P_(m,n)(x) = 1 + b_1*x + b_2*(x)^(2) + ... + b_m*(x)^(m)とする。 Σ_(x=0)^n (x+s)^(s)P_(m,n)(x) = 0 ...........(1) (注:ここで現す(x)^(m)などは、階乗多項式です。つまり、例えばx^(3)なら、x^(3) = x(x-1)(x-2)。以下同様) (1)を満たすP_(m,n)(x)は、二項展開を用いた式となりますので省略します。分からないのは、この次。 次数qの任意の多項式Q(x)は、次のように書ける。 Q(x) = Σ_(s=0)^q A_s*(x+s)^(s) (補:多分A_sとは、(x+s)^(s)の係数(実数値)と思われる。) この方程式に、P_(m,n)(s)をかけてx=0からx=nまで、xについて加えると(1)式から分かるようにq<mであるときは次のようになる。 Σ_(x=0)^n Q(x)P_(m,n)(x) = 0 (?!) (ここが一番分からない) 特別にもしm≠kであれば、 Σ_(x=0)^n P_(m,n)(x)P_(k,n)(x) = 0 (?!) となる。これは始めに述べた定義式である。 以上で式の導出は終わりです。 一番引っかかるのは、「特別にもしm≠kであれば」というところ。(一番かんじんな所のような気がする。) 長々と書きましたが、理解できないところは言ってください。誰かわかる人お願いします。

  • BASIC数値解析の収束過程計算結果の表示法について。

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=2172518ここの質問の訂正です。↓のプログラムで収束過程の計算結果を実行画面に表示させるように改良したいのですが、具体的な方法がわからないです。たとえば試行値1の場合ですと、収束回数が9回ですが、収束1回ごとの計算結果を表示させたいです。 (x^2-a=0のaの根を求めるニュートン法のプログラムです。収束した結果は表示できます。) 120 REM*******ニュートン・ラフソン法********* 130 FOR I = 1 TO 6 132 READ X0 134 GOSUB 140 136 NEXT I 138 END 140 PRINT "試行値は";X0 145 N=1 150 ER=.00001 180 FX=X0*X0-333 190 DFX=2*X0 200 X1=X0-FX/DFX 220 IF ABS(X1-X0)<ER THEN 250 230 X0=X1 :N=N+1 240 GOTO 180 250 PRINT X1,N 280 RETURN 300 REM *************試行値************* 310 DATA 1,5,10,50,100,500

  • 二次形式の標準化を利用した対角化について

    二次形式の標準化を利用した対角化について 理解が不十分なところがあります、ご教授願います。 (3 3 1) (3 9 -1) (1 -1 1)の実対称行列を対角化します。 この固有値は0と(13±√(57))/2となります。しかし、これでは固有ベクトルが求め難く、合理的な解法では無い気がします。 そもそも二次形式の標準形は行列で表したときに対角行列になるのだから、問題の行列を二次式にして、平方完成すれば良いのではと思います。 でx1,x2,x3を用いて、二次式にすると3x1^2+9x2^2+x3^2+6x1x2+2x1x3-2x2x3になります。 ラグランジェ法を参考に平方完成すれば、 =(x1-x2+x3)^2+2x1^2+8x2^2+8x1x2 =(x1-x2+x3)^2+2(x1^2+4x2^2+4x1x2) =1*(x1-x2+x3)^2+2*(x1+2x2)^2 以上より、 (1 -1 1) (1 2 0) (0 0 0)の直交行列によって (1 0 0) (0 2 0) (0 0 0)に対角化できる。 というのはどうでしょうか? テキストの模範解答は直交行列を示さずに 1行目((13-√(57))/2 0 0) 2行目(0 (13+√(57))/2 0) 3行目(0 0 0) となっています。 やっぱり、私はどこか根本的に間違えているのでしょうか?

  • n進法の計算について

    2種類の文字”A”、”B”を1個以上、最大n個並べた符号を作る。 60通りの符号を作る時のnの最小値は幾らか。 答え。5 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* この問題の模範解答なのですが、 1個並べた場合2の1乗=2通り 1個以上2個並べた場合2+2の2乗=6通り 1個以上3個並べた場合6+2の3乗=14通り 1個以上4個並べた場合14+2の4乗=30通り 1個以上5個並べた場合30+2の5乗=62通り となるそうなのですが、 2の2乗に「+2」したり2の3乗に「+6」をする意味が わかりません。問題が理解できてないのでしょうか。 2の2乗=4通り AA AB BA BB で4通りなのに+2するのはなぜなのでしょうか。

  • SW:ハッシュ法によるデータの探索に関する問題

    SW受験予定者です。 問題の解法として理解できない点がありましたので、ご理解のある方はご教授のほどお願い致します。 問.ハッシュ法によるデータの探索に関する記述のうち、最も適切なものはどれか。 答.ウ ハッシュ関数h(x)がh(x)=x mod n (xはキー、nはハッシュ表の大きさ)である場合、キー値がaであるデータと、キー値がbであるデータの間にシノニムが発生するときには、a-bがnの倍数であるという関係が成り立つ。 解答 キーaとキーbを a=s・n+c 、 b=t・n+cとする(s、t、cはともに整数) a-b=(s・n+c)-(t・n+c)=(s-t)・nとなり、これはnの倍数となっているので ウ が正解である。 以上の部分で、a=s・n+c 、 b=t・n+c をどのように導いたのかが理解できません。宜しくお願い致します。

  • 中心極限定理について

    中心極限定理についていろいろ調べたんですが、よくわからないことがあります。 (ほとんどの)任意の母集団(平均μ、分散σ^2)からn個の確率変数x1, x2, x3 .... xn を無作為抽出すると、平均値X を求めると、その平均値の分布は、nが大きくなると正規分布(平均μ、分散σ^2 / nの平方根)に近づく と書いています。 ある母集団分布をおいて、n = 6 として、 サンプル1: x1, x2, x3, x4, x5, x6 を抽出し、平均値 X1 を求める サンプル2: また、x1, x2, x3, x5, x6 を抽出し、平均値 X2 を求める サンプル3: また、x1, x2, x3, x5, x6 を抽出し、平均値 X3 を求める と同様に、やっていくのですよね? で、この「1回に抽出するデータがn」(上記では n = 6)であり、この nが大きくなると正規分布に近づくということなんですが、 サンプル数(平均値Xの数)はいくつを想定しているのでしょうか? サンプルが無限だったら、n = 2 だろうが、n = 100 だろうが正規分布のような気がするのですが。 いろいろなサイトで、 n = 1 や、n = 2 のケースでやったときの分布図が掲載されているのですが、これはサンプル自体の数が多いのでしょうか? n の意味と、サンプルの数(平均値Xの数) が混乱しているようです。 教えてください。