問題タブ [approximation]

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

php - クエリからおおよその数の検索結果を取得する最良の方法は何ですか?

もう少し説明すると、クリックするとその地域に関する詳細情報を取得するためにクエリが実行される地域の画像マップがある場合。

私のクライアントは、その地域の画像マップにカーソルを合わせたときに、おおよその数の検索結果を表示するように求めています。

私の問題は、どのようにキャッシュするのですか? または、サーバーのメモリ リソースを大幅に使い果たすことなく、その数値を取得できますか?

ところで、それが必要な情報であれば、phpとmysqlを使用しています。

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

c++ - フーリエ記述子を使用した形状境界の近似

フーリエ記述子を使用して形状境界を近似しようとしています。私はクラスでそれについて学び、いくつかの情報源でそれについて読んだので、これができることを知っています。

(x、y)座標の境界のフーリエ記述子を取得するには、次のようにします。1)(x、y)座標をx + iyの形式の複素数に変換します。2)この新しい数値のセットを1Dにフィードします。フーリエ変換3)出力はフーリエ記述子です

境界を概算するには、高周波を削除(ゼロに設定)してから、逆フーリエ変換を適用し、複素数を(x、y)座標に変換して、この新しい座標のセットから画像を再構築します。私のプロジェクトの目標は、ゼロに設定した項の数に応じて、境界をどれだけうまく近似できるかを見つけることです。

私の問題は、周波数のいずれかを0に設定すると、出力画像が非常に小さくなり、非常に奇妙なパターンとして出力されることです。

以下に例を示します。入力画像は通常の正方形です。与えられた最初の出力画像は、通常どおりすべてのフーリエ記述子を使用した画像の再構成です。境界ピクセルの数が256にサンプリングされ、出力時にドットをわざわざ接続しなかったため、境界全体が存在しないことに注意してください。また、出力は左下隅に変換されることに注意してください。これは意図的なものです。2番目の出力画像は、最初の128周波数のみを使用した場合です。

入力画像http://img19.imageshack.us/my.php?image=square0.bmp

出力画像1:すべての周波数http://img27.imageshack.us/my.php?image=square0normal.bmp

出力画像2:周波数の前半http://img23.imageshack.us/my.php?image=square0out.bmp

なぜこれが起こっているのか誰かが知っていますか?

編集:初めてここに画像を配置しますが、なぜ画像が表示されないのかわかりません。リンクは次のとおりです。
入力画像
出力
1出力2

また、これについて少し説明しているドキュメントへのリンクもあります。これは5ページの終わりから始まります。

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

np-complete - 「組み合わせアルゴリズム」と「線形アルゴリズム」の違いは何ですか?

むしろ、組み合わせアルゴリズムと線形アルゴリズムの定義は何ですか?

明らかに最初の応答者が質問を誤解したため、明確にするために: 私は、線形時間と非線形時間で実行されるアルゴリズムの定義を探しているわけではありません。線形アルゴリズムは、線形最適化問題の解を見つけたり近似したりする手法である線形計画法に何らかの形で関連しています。

NP 困難な問題は非常に難しいため、近似解を見つけようとする分野全体があります。たとえば、巡回セールスマンの問題には、多項式時間で実行され、最良の解の特定の境界内にある解を生成するいくつかの近似解があります。

これらの近似アルゴリズムには、線形アルゴリズムと呼ばれるものもあれば、組み合わせアルゴリズムと呼ばれるものもあります。後者が好まれているようです(なぜですか?)。これらは、私が理解したい2つの概念です。

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

approximation - 補間アドバイス (リニア、キュービック?)

未定義の関数がしきい値と交差するポイントの適切な近似値を見つける必要があります。私は自分のスペースを通り抜けており、後続の 2 つのステップがしきい値の異なる側にあることがわかった場合はいつでも、その間のどこかにポイントを追加します。

実際の状況

(ソース: ning.com )

私の最初のアプローチは単に中間点を選ぶことでしたが、これは明らかにひどい解決策です:

中点

(ソース: ning.com )

私は現在、合理的な結果をもたらす線形補間を使用していますが、基になる関数は実際には決して線形ではありません。したがって、これはステップサイズが十分に小さい場合にのみうまく機能します。

線形補間

(ソース: ning.com )

基本関数のサンプリングは非常にコストがかかる可能性がありますが、1 つまたは 2 つの追加サンプルを追加して、より適切な近似値を取得することを試してみたいと思います。ここでキュービック補間を使用することは可能ですか? そのようです:

CubicInterpolation
(ソース: ning.com )

それとももっと良い方法がありますか?

大変お世話になりました、デビッド・ルッテン

ps。私は C# で書いていますが、これは言語に依存しない問題です。

0 投票する
9 に答える
69413 参照

algorithm - 光の周波数をRGBに変換しますか?

光の周波数をRGB値に変換するための式を知っている人はいますか?

0 投票する
4 に答える
24034 参照

machine-learning - ニューラル ネットワークを使用して正弦関数を近似できない

自分で作成したニューラル ネットワークを使用して、sine() 関数を近似しようとしています。単純な OCR 問題でニューラル ネットワークをテストしましたが、うまくいきましたが、それを適用して sine() を近似するのに問題があります。私の問題は、トレーニング中にエラーが正確に 50% に収束することです。したがって、完全にランダムであると推測しています。

入力 (0 から PI) に 1 つの入力ニューロンを使用し、結果に 1 つの出力ニューロンを使用しています。私はニューロンの数を変えることができる単一の隠れ層を持っていますが、現在は約6〜10を試しています.

問題は、sine() の出力が -1 と 1 の間であるのに対し、0 と 1 の間のみを出力するシグモイド伝達関数 (私のアプリケーションの要件) を使用しているためだと感じています。この出力に 2 を掛けてから 1 を引いてみましたが、問題は解決しませんでした。これを機能させるには、どこかで何らかの変換を行う必要があると考えています。

何か案は?

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

java - Java double の小数点以下の桁数を取得する方法はありますか?

Java/Groovy プログラムに取り組んでいます。ユーザーが入力した数値を保持する double 変数があります。私が本当に知りたいのは、ユーザーが小数点の右側にいくつの数字を入力したかです。何かのようなもの:

もちろん、これは double で行うことはできません。これは、IEEE 浮動小数点を使用しており、すべて近似であるためです。

ユーザーが入力した文字列を取得できず、値が格納されている double にしかアクセスできないと仮定すると、その double を BigDecimal またはそのようなものでスクラブして、「実際の」数を取得する方法はありますか?小数位?(ダブルが画面に表示されると、それは正しく表示されるので、少なくともうまく推測する方法があると思いますか?)

0 投票する
5 に答える
1607 参照

math - 近似法

画像を添付 しました:(出典:piccy.info代替テキスト

したがって、この画像には、指定されたポイントで定義された関数の図があります。たとえば、ポイントx=1..N。

半透明の曲線として描かれた別の図、それは私が元の図から得たいものです。つまり、元の関数を滑らかになるように近似したいと思います。

それを行う方法はありますか?

直線または放物線関数で関数を近似するために使用できる最小二乗法について聞いたことがあります。しかし、放物関数で近似する必要はありません。おそらく三角関数で近似する必要があります。それで、それを行うための方法はありますか?そして、1つのアイデアとして、三角関数で推定できる場合、この問題に最小二乗法を使用することは可能ですか?

もう1つ質問があります。離散フーリエ変換を使用して関数を波の合計として考えると、ノイズにはそれを定義できる特別な機能があり、対応する周波数をゼロに設定してから逆フーリエ変換を実行できます。それで、それが可能だと思うなら、ノイズの周波数を特定するために何を提案できますか?

0 投票する
8 に答える
13113 参照

java - 乱数を効率的に選択する

ランダムサンプルを使用して計算を近似する方法があります。このメソッドは何百万回も呼び出されるため、乱数を選択するプロセスが効率的であることが非常に重要です。

Java が実際にどれほど速いかはわかりRandom().nextIntませんが、私のプログラムは、私が望んでいるほどには恩恵を受けていないようです。

乱数を選択するときは、次のことを行います (半疑似コードで)。

さて、これは明らかに悪い最悪の場合の実行時間を持っています。理論的には、ランダム関数は永遠に重複した数値を追加できるため、whileループに永遠に留まる可能性があります。ただし、数値は {0..45} から選択されるため、値が重複することはほとんどありません。

上記の方法を使用すると、他の方法よりも 40% だけ速くなります。これは概算ではありませんが、正しい結果が得られます。これは約 100 万回実行されたので、この新しい方法は少なくとも 50% 高速になると予想していました。

より高速な方法について何か提案はありますか? あるいは、一連の乱数を生成するより効率的な方法を知っているかもしれません。

明確にするために、ここに2つの方法があります:

いくつかのテストとプロファイリングの後、この方法が最も効果的であることがわかりました。

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

algorithm - シュタイナーの森を見つけるための近似アルゴリズム

加重グラフ G=(V,E,w) を考えてみましょう。頂点 V_i のサブセットのファミリが与えられます。

シュタイナー フォレストは、頂点 V_i のサブセットごとに、このサブセット内のすべての頂点をツリーで接続するフォレストです。

例: V_1 = V の 1 つのサブセットのみ。この場合、シュタイナー フォレストはグラフ全体のスパニング ツリーです。

例: グラフ P4 (4 つの頂点を持つパス) と 2 つのサブセット: V_1 = {v1, v4} および V_2 = {v2, v3}。この例のシュタイナー木はグラフ全体です。

十分な理論。このような最小の重みを持つフォレストを見つけることは困難です (NP 完全)。このような最適でない重みを持つフォレストを見つけるためのより迅速な近似アルゴリズムを知っていますか?