問題タブ [bisection]

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 投票する
3 に答える
219 参照

python - 辞書のリストから最も近い要素を取得する

私のプログラムは、次のリスト (抜粋) を生成します。

すでに「x」キーの値でソートされています。特定の座標に対してこのリストの2つの要素のタプルを返すメソッドを作成しようとしています(xPos, yPos):

  • 左に最も近い要素 ( x <= xPos)
  • 右に最も近い要素 ( x > xPos)

距離は単にユークリッド距離 (「ピタゴラス」) です。関数の 2 番目のパラメーターは、許可される最大距離です。

検索領域を絞り込むために、bisect 関数を使用しxPosて、xPos - maxDistance(case 'left') および(case 'right) にそれぞれ最も近い要素の挿入ポイントを取得しようとしました。xPos + maxDistance次に、このスライスされたリストの残りのすべての要素の距離を計算しました

なんというか、これは非常に非エレガントに感じます。これを行うより良い方法はありますか?

編集: たぶん、私の意図はあまり明確ではありませんでした: リストの 2 つの要素が必要です。'2D ペイン' 内の最も近い要素が左に、もう 1 つが右にあります。したがって、y 座標も考慮する必要があります。

x座標に関して最も近い要素が、近くのy座標を持つ要素よりもはるかに離れていることが(実際にはほぼ毎回)発生する可能性があります。

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

c - 二分法で方程式を解くCプログラム

このプログラムは、二分法を使用して方程式を解くためのもので、「function show return a value」というエラーが表示されます。

このメソッドでは、関数が与えられ、f(x)2 つの根を近似ab 、そのような関数に対してf(a).f(b)<0.

次に、別のポイントを見つけます

そして、指定された反復回数だけこれらの手順を繰り返します

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

python - 二分法を使用した多項式の根

私はPythonが初めてで、二分法を使用して多項式の根を見つけようとして苦労しています。これまでのところ、2つの方法があります。値 x で多項式を評価するためのもの

次の方法は、二分法を使用して、与えられた多項式の根を見つけることになっています

二分法を使用してルートを見つけるにはどうすればよいですか? これらをテストするためのテスト スクリプトが提供されています。

編集:私は疑似コードをたどり、これで終わりました:

これは正しいです?return xmid ステートメントのインデントエラーのため、テストできませんでした。

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

python - If/else ステートメントが正しく実行されない

Pythonを学んでいて、現在問題解決の二分法を学んでいます。私は、0 から 100 までのユーザーの推測を取り入れ、二分法を使用してその推測を見つけようとするコードを書いています。コードは次のとおりです。

私が気付いたのは、私の推測 < 回答が false の場合、else ブロックは実行されないため、私の高い数値は決して変わらないということです。なぜこうなった?ここで何かを見落としていますか?

0 投票する
2 に答える
3896 参照

vba - VBAルート検索トラフ二等分

関数のルートが 0 でないことがわかっているのに、vba コードが値 0 を返し続けます。

これは非常に単純なコードですが、デバッグできないようです。このエラーの原因はどこにあるのでしょうか??

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

javascript - ニュートン対二分法の JavaScript 実装

好奇心から、非線形方程式を解くために Newton が (収束に成功した場合に) 二分法より実際に高速であることを確認したいと思います。

の両方を実装しましたtextbook algorithms。テストされた関数は次のとおりです。

収束精度は 1e-4 に設定されています。ニュートンは から始まりx0 = 0.5ますconverges in 2 iterations。二分は で始まり、interval [0,1]に収束し14 iterationsます。

performance.now()は両方の方法の経過時間を測定するために使用します。驚くべきことに、何度も試行しても、ニュートンは常に二分法よりも遅くなります。

プログラムを C (ビジュアル C) に移植しました。ニュートンは、二分法よりもはるかに高速です。

これらの数値コードは非常に単純なので、奇妙なことが起こっていることはわかりません。誰でも助けることができますか?

http://jsfiddle.net/jmchen/8wvhzjmn/

0 投票する
2 に答える
158 参照

c - Cで二分法を使用した2つの根の違い?

二分法を使用して 2 つの関数のルートを比較するために、この C コードを作成しました。最初の関数 (g(x)) は正しく実行されますが、2 番目の関数 (h(x)) は画面に「#1QO」を出力します。コードで何が間違っていたのかわかりません。

説明していただけますか?どんな種類の助けでも大歓迎です。ありがとう!

編集二分でi = 1を初期化し、に変更bisection (h,0,2,0.0005)するbisection (h,1,2,0.0005)と動作します皆さんありがとう!

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

java - 二分法に基づいて方程式の解を見つける方法

方程式の解を見つけるための二分法を実装しようとしています。

方程式の形式は次のようなり
ます。 20, -20 ≤ q,s,t ≤ 0 e -20 ≤ u ≤ 20

入力例:

3
1. 0 0 0 0 -2 1
1 0 0 0 -1 2
1 -1 1 -1 -1 1

を与える必要があります:

0.7071
不可能
0.7554

これを実装してみたのですが結果が小数点以下4桁で表示できず、abとcがxxの形式で小数点以下1桁しかないことに気付きました。問題はここからだと思います。どんな助けでも大歓迎です。これが私のコードです

}

0 投票する
2 に答える
506 参照

python - 対数ランタイムでの二分法を使用した Wting 逆関数

私は、任意の関数を取り、関数に入れると0に近い(イプシロンに近い)答えを返すパラメータを返すことができる関数を作成しようとしています。関数は次のようになります。

x0、x1 は、答えを探す範囲です。私が知っているもう1つのことは、正と負の両方になる可能性のある関数にのみ適用されることです(たとえば、f(X)= x ^ 2 + 1は解決するのに適した関数ではありません)。

ここで答えを見つけました二分法

編集: これまでのところとても良いです。これで、書く必要のある主な関数ができました。これは、関数に尊敬される値を与える関数です。関数自体は、逆にする必要がある関数と、答えが近いと思われるイプシロンを取得します。

たとえば、f(x) = x+2 の場合、inverse_func(f(100))が 100 を返すようにします。ヒントは、前に示した関数を使用できるということです。私はこのようにしてみました:

問題を解決するために「解決」機能を与えようとしたこと。f(x) から与えられた値から、解法関数が見つける必要がある値を引いた値を計算する関数を与えています。

たとえば、f(x) = x+2 の場合、次の呼び出し

Minus_func = inverse(g(100)) =inverse(102) print(minus_func) は返すことがサポートされています

100 は、"solve" 内の関数が 102-f(x) であり、もちろん "solve" がこれに対する正しい値を見つけることができるためです。

コードでこれを試してみましたが、うまく機能しますが、十分ではありません。一部の機能では、正常に動作します。しかし、他の人にとっては、まったく機能しません。関数の場合:

おそらく他の人も、うまくいきません。誰かがこれを解決する方法を知っていますか?.

ps - コードを python で書いているので、答えも python にあるといいですね。しかし、それ以外は大丈夫です(私はJavaも知っています。もちろん、ロジックを説明するものは何でも素晴らしいです)

ありがとう!