問題タブ [exp]
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.
php - 悪いexp calc関数?
この関数の何が問題になっていますか? に 31 を使用するとexp
、この関数は無限ループになります。どうすれば修正できますか?可能であれば、この機能を助けて最適化してください。ありがとうございます。
c++ - C++ を使用した exp 関数
my_exp()
入力として 1 を指定したときから結果 1.#INF を取得し続ける理由がわかりません。コードは次のとおりです。
php - PHP で文字列内のリンクを検索します。通常の YouTube リンクとは異なります
リンクを含む文字列があります。URL に応じて、リンクを使用して php にさまざまなことをさせたいと考えています。
答え:
oracle - .dmp ファイルの実際のタイプ
データベースにロードする必要がある .dmp ファイルを頻繁に取得します。それらのいくつかは datapump で作成され、いくつかは exp で作成されます。スクリプトに入れることができる、それらを区別する簡単な方法はありますか?
c - 計算ワークロードに対するUbuntuの期待外れのパフォーマンス
科学計算に使用している新しいヘッドレスワークステーションマシンでUbuntuで計算コードを実行すると、パフォーマンスがかなり低下することがわかりました。Ubuntuで少し複雑なコードを実行する速度と、開発に使用する古いMacラップトップで実行する速度の違いに気づきました。しかし、私はそれを信じられないほど単純な例にまで蒸留することができましたが、それでも私の古いマシンよりもステラーの改善は見られません。
現在、MacはOSX10.5を実行しているほぼ5年前の2.4GHzCore2 Duo MacBook Proであり、このコードを約6.8秒で実行します。ただし、Ubuntu11.10を実行している新しい3.4GHzCore i7 Dellでは、約6.1秒かかります。ほぼ5年前のラップトップが真新しいデスクトップワークステーションの10%以内にあるのはばかげているので、誰かがここで何が起こっているかについて私に教えてもらえますか?Core i7が監視ツールでほぼ4GHzにターボブーストしているのを見ることができるので、それはさらにばかげています!
コンパイルされたMac:
コンパイルされたUbuntu:
ありがとう、
ルイ
python - numpyを使用してexpのオーバーフローに対処する
numpyを使用して、関数の次の定義があります。
この関数は、最適化ルーチンで何度も評価されます。それはしばしば例外を引き起こします:
フロートに割り当てられたスペースにオペランドを格納できないことを理解しています。しかし、どうすれば問題を克服できますか?
oracle - SQL-Developer を使用して、「exp」で作成されたシステム テーブル ダンプを分析しようとしています
以前に実行したシステム テーブル ダンプに存在する特定のテーブルからデータを回復しようとしています。ダンプに存在する行を、アクティブなテーブルに存在する可能性のある行に追加したいと思います。問題は、ダンプ内のテーブルの名前が現在データベースに存在するものと同じではない可能性があることです (それらは ARC_TREND_ のプレフィックスで動的に作成されます)。さらに、ダンプに存在するテーブルの名前がわかりません。列と既存の行で正しいテーブルを認識できるため、SQL Developerを使用してダンプファイルを分析したいと考えていました。
SQL Developer でダンプ ファイルを操作できると盲目的に信じていますが、ダンプ ファイルを開こうとすると、Java Heap OutOfMemory 例外が発生します。sqldeveloper.bat と sqldeveloper.conf の両方で最大ヒープ サイズを 640m から 1024m に調整しましたが、役に立ちませんでした。
exp で作成されたダンプ ファイルに存在するテーブルからデータを回復するために実行する一連のアクションを誰かが推奨できますか? グラフィカル ツールがあればいいのですが、私はコマンド ラインをよく知っています。正しいテーブルを選択するために、ダンプに存在するテーブルを分析する必要があります。次にimp TABLE=
、アクティブなインスタンスに戻すために使用できると思います。既存のテーブル名と一致しない可能性が高いため、SQL Developer を使用して、インポートしたテーブルから必要なテーブルに行をコピーします。
ダンプは 10g を実行している Linux サーバーから取得され、同じデータベースの 11g インスタンス (同じサーバーとデータベース インスタンス、アップグレード済み) にインポートされます。
ありがとう
matlab - 指数関数を近似する Matlab コード
大きくて負の実数を扱うときに、次のMatlabコードで指数関数をより正確に近似する方法を知っている人はいますか?
たとえば、x = 1 の場合、コードはうまく機能し、x = -100 の場合、3.7201e-44 に近づくはずのときに 8.7364e+31 という答えを返します。
コードは次のとおりです。
どんな支援も大歓迎です、乾杯。
編集:
わかりましたので、質問は次のとおりです。
このコードが近似する数学関数はどれですか? (指数関数と言います。) x = 1 のときはうまくいきますか? (はい。)残念ながら、x = -100 のときにこれを使用すると、答えは s = 8.7364e+31 になります。あなたの同僚は、プログラムにばかげたバグがあると信じており、あなたの助けを求めています。動作を注意深く説明し、より良い結果が得られる簡単な修正を行います。[上記のコードの変更を提案するか、それを使用する必要があります。簡単な修正が機能することも確認する必要があります。]
したがって、用語間に16桁(またはそれ以上)の桁数がある場合、問題が大きな数を取り囲み、精度が失われることをある程度理解していますが、解決策はわかりません。
ありがとう
編集:
だから最後に私はこれで行きました:
完全に正しいかどうかはわかりませんが、適切な近似が返されます。
exp(-100) = 3.720075976020836e-
044s = 3.722053303838800e-044
さらに分析した後 (そして残念ながら課題を提出した後)、反復回数を増やして項を増やすと、効率がさらに向上することに気付きました。実際、次の方法はさらに効率的でした。
これにより、次のことが得られます。
exp(-100) = 3.720075976020836e-044
秒 = 3.720075976020701e-044
c# - 高速 Exp 計算: パフォーマンスをあまり低下させずに精度を向上させることは可能ですか?
C# での計算速度の向上に関する SO の質問に対するこの回答で以前に説明した高速な Exp(x) 関数を試しています。
この式は、いくつかの IEEE 浮動小数点「トリック」を使用しており、主にニューラル セットでの使用を目的としています。この機能は、通常の機能よりも約 5 倍高速ですMath.Exp(x)
。
残念ながら、数値の精度は通常の関数に比べて -4% ~ +2%Math.Exp(x)
です。理想的には、少なくともサブパーセントの範囲内の精度が必要です。
近似関数と通常の Exp 関数の商をプロットしました。グラフからわかるように、相対的な差は実質的に一定の頻度で繰り返されているように見えます。
この規則性を利用して、計算速度を大幅に低下させることなく「高速exp」関数の精度をさらに向上させることは可能ですか?それとも、精度向上の計算オーバーヘッドが元の式の計算ゲインを上回るでしょうか?
(補足として、同じ SO の質問で提案されている代替アプローチの 1 つも試しましたが、このアプローチは、少なくとも一般的なケースでは、C# では計算効率が悪いようです。)
5月14日更新
@Adriano からのリクエストに応じて、非常に単純なベンチマークを実行しました。[-100, 100] の範囲の浮動小数点値に対して代替の各exp関数を使用して、1,000 万回の計算を実行しました。関心のある値の範囲は -20 から 0 までであるため、x = -5 の関数値も明示的にリストしました。結果は次のとおりです。
ExpNeuralは、このテキストの冒頭で指定したExp関数に相当します。ExpSeries8は、.NET ではあまり効率的ではないと私が最初に主張した定式化です。Neil とまったく同じように実装すると、実際には非常に高速でした。ExpSeries16は類似の式ですが、乗算は 8 回ではなく 16回です。exp1からexp7は、以下の Adriano の回答とは異なる関数です。exp7の最後のバリアントは、 xの符号がチェックされるバリアントです。負の場合、関数は1/exp(-x)
代わりに戻ります。
残念ながら、AdrianoによってリストされたexpN関数はいずれも、私が検討しているより広い負の値の範囲では十分ではありません。Neil Coffeyによる級数展開アプローチは、「私の」値の範囲により適しているようですが、特に「8 つの」乗算のみを使用する場合、負のxが大きくなるとあまりにも急速に発散します。
php - exp() は NaN のものを返します
わかりました、私は立ち往生しています。私はこのPHPコードを持っています:
PHP.net ページと同じように。そして、私が画面に持っているもの:
しかし、その後、これまでで最も奇妙なことが起こります。2.67e8 などの数値 (内部の 'e' を意味する) などに PHP.ini の問題があるのではないかと考えました。しかし、その後、上記のコードを次のように変更すると:
突然、私はこれを見ました:
これは、特に最後の NAN のおかげで一種の WTF です。最初は非常に正常で落ち着いたフロート 298.86740096706 でしたが、理由もなく NAN に置き換えられて地獄に落ちました。あなたはなにか考えはありますか?お願いします?