問題タブ [newtons-method]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
10635 参照

minimization - ニュートン法を使用して非線形多変量関数の最小値を見つける方法(線形代数ではなくコード)

私はいくつかのパラメーター推定を行おうとしていますが、約30変数にわたって予測方程式の二乗誤差を最小化するパラメーター推定を選択したいと思います。方程式が線形の場合、30個の偏導関数を計算し、それらをすべてゼロに設定して、線形方程式ソルバーを使用します。しかし残念ながら、方程式は非線形であり、その導関数も非線形です。

方程式が単一の変数を超えている場合は、ニュートン法(ニュートンラプソンとも呼ばれます)を使用します。Webには、単一変数の関数に対してニュートン法を実装するための例とコードが豊富にあります。

約30個の変数があるとすると、ニュートン法を使用してこの問題の数値解をプログラムするにはどうすればよいですか?私は閉じた形の方程式を持っており、一次および二次導関数を計算できますが、そこからどのように進めるかはよくわかりません。私はウェブ上で多数の処理を見つけましたが、それらはすぐに重い行列表記になります。ウィキペディアで適度に役立つものを見つけましたが、それをコードに変換するのに問題があります。

分解が心配なのは、行列代数と行列反転です。一次方程式ソルバーを使用して行列を反転することはできますが、正しい行と列を取得したり、転置エラーを回避したりすることなどが心配です。

具体的には:

  • 変数をそれらの値にマッピングするテーブルを操作したいと思います。そのようなテーブルを引数として与えられた場合に二乗誤差を返すようなテーブルの関数を書くことができます。また、任意の変数に関する偏導関数を返す関数を作成することもできます。

  • 表の値について妥当な開始見積もりがあるので、収束について心配する必要はありません。

  • 推定値(各変数の値のテーブル)、関数、および偏微分関数のテーブルを使用して新しい推定値を生成するループを作成する方法がわかりません。

最後は私が助けて欲しいものです。直接の助けや良い情報源へのポインタは大歓迎です。


編集:私は閉じた形で一次および二次導関数を持っているので、それらを利用して、シンプレックス検索のようなよりゆっくりと収束する方法を避けたいと思います。

0 投票する
19 に答える
175489 参照

algorithm - 独自の平方根関数を作成する

整数の最も正確な平方根を見つける独自の関数をどのように作成しますか?

グーグルで調べた後、これを見つけました(元のリンクからアーカイブされています)が、最初に完全には取得できませんでした.2番目に、それも概算です.

平方根を (実際の根に) 最も近い整数または浮動小数点数として想定します。

0 投票する
1 に答える
1118 参照

r - 係数とヘッセ行列を見つけるためのニュートン法の問題

ニュートン法(coefficients+(inverse hessian)*gradient)を使用して対数線形モデルの係数を繰り返し求める関数を作成しようとしています。

私は次のコードを使用しています:

コードを実行すると、次のエラーが発生します。

数式がBillGreeneの問題セットから引き出されていることを考えると、数式の問題ではないと思います。関数を渡す際に何か問題が発生していると思います。

どうすればこれを修正できますか?
この機能の助けをいただければ幸いです。

0 投票する
3 に答える
637 参照

c - この C イディオムはどういう意味ですか?

重複の可能性:
John Carmack の異常な高速逆平方根 (Quake III)

最近ブログでこのコードを見つけました - これは Quake3 Engine からのものです。これは、ニュートン ラプソン法を使用して逆平方根を高速に計算するためのものです。

する理由は何int i = *(int*)&x;ですか?代わりに行うint i = (int) x;と、まったく異なる結果が得られます。

0 投票する
3 に答える
10120 参照

math - RGB と RYB の色空間間の変換

現在、RGB (赤、緑、青) 色空間と RYB (赤、黄、青) 色空間の間で色を変換しようとしています。

次の論文の詳細に基づいて、トリリニア補間を使用して RYB から RGB に変換できます。ここで、パラメトリック重み付け (s、t、u) は RYB 色であり、立方体の頂点は RGB 空間の 3d ポイントです。 .

視覚化のためのペイントにヒントを得た色の混合と合成 - Gossett と Chen - セクション 2.1 - 実現の詳細

私の困難は、変換プロセスを逆にすることです。

2 番目の論文では、この手法の使用について言及しており、ニュートン法を使用して逆変換が達成されたことも示しています。しかし、それ以上の詳細は提供しません。これはおそらく、三線補間方程式を解く際のルート検索を示しています。

色のコントラストへの注意による絵画様式の写真イメージへの転移について - 張小燕; コンスタブル、M。何英;

この問題を方程式で詳しく説明する前に、Java/C/C++/C# などの言語でこれを見たり解決したりした人はいますか?

私の現在のアプローチは、3 線形補間 (RYB から RGB へ) の前方方程式を取り、展開して再配置して、3 つの未知数 (パラメトリック重み付け: s、t、および u) の 3 つの連立方程式を提供し、根を見つける方法を考え出すことです。ニュートン・ラフソン法を使用しています。私はこれを正しい方法で行っていますか?

0 投票する
3 に答える
2441 参照

java - 指定桁数の精度を持つニュートン法

数値の n 乗根を計算する関数を Java で作成しようとしています。これにはニュートン法を使用しています。ただし、ユーザーは必要な精度の桁数を指定できる必要があります。私の答えが完全に正しいとは限らないため、これは私が問題を抱えている部分です。関連するコードはhttp://pastebin.com/d3rdpLW8です。このコードを修正して、少なくとも p 桁の精度の答えが常に得られるようにするにはどうすればよいでしょうか? (必要以上の作業はしません)

0 投票する
1 に答える
2594 参照

matlab - Newton-Raphson 反復法の実装

Newton Raphson 反復を使用して後方オイラー スキームを実装しようとしています。各反復で、最初の推測を行い、残差を計算し、変化を解くことを理解しています。私の場合、変更は del w です。その後、値を w^m に追加し、次の m 反復で w の更新値を取得することを知っています。反復が進むにつれて解の収束を確認することを知っています。私が抱えている問題は、時間ステップ dt を t=0:Tmax/dt として実装する方法です。ここで、Tmax は 10 です。時間ステップがどのように行われるかについて混乱しています。その間、どんな助けも大歓迎です。ありがとうございました!

0 投票する
1 に答える
3697 参照

java - Javaでニュートン多項式を使用して、指定されたxおよびf(x)ポイントから補間関数を生成する方法は?

これが私のコードです:

見苦しいコードですみません。x ポイント = {1, 2, 3} および f(x) = {1, 8, 27} とすると、上記のコードは次のような 2 次元配列を生成します。

分割差分表です。

次に、その補間多項式関数を生成したいと思います。したがって、上記の例では、ニュートンの多項式規則を使用すると、出力関数は 1 + 7(x-1) + 6(x-1)(x-2) = 6x^2-11x+6になります。私は本当にこれに行き詰まっています。そのような出力を生成する方法を誰か助けてもらえますか?

0 投票する
3 に答える
22887 参照

matlab - Matlabのニュートンラフソン法?

Newtons-Raphsons 法は Mathematica では簡単に実装できますが、Matlab では少し難しいようです。関数を関数に渡すことができるかどうか、および導関数を関数として使用する方法がわかりません。

ファイルで定義された関数ハンドルも関数も派生できないようですが、私は間違っているかもしれません。

0 投票する
1 に答える
561 参照

ruby - XIRR 実装の bigdecimal/newton のエラー

XIRRbigdecimal/newtonの実装のために Ruby でモジュールを使用したいと思います。この例に従って、試してみるためのスクリプトを作成しました。

コード (Mac OS X 10.6 で Ruby 1.9.2) を実行すると、次のエラーが表示されます。

これは私のプログラムのエラーによるものですか、それとも BigDecimalライブラリの何かによるものですか?

デバッグの支援をいただければ幸いです。

ありがとう!