問題タブ [linear-algebra]

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 に答える
3516 参照

java - 回転とスケーリング-両方を実行して正しい結果を得るにはどうすればよいですか?

グラフィックスコンテキストでベクトルを描画する一連のJava2D呼び出しがあります。画像のサイズを2倍にしてから、90度回転させたいのですが。

私はこれを行うために次のコードを使用しています:

これは回転してスケーリングしますが、スケールが希望どおりに適用されていません。拡大縮小する前に回転しているように見えるため、画像が間違った軸で広くなります。

これを行うためのより良い方法はありますか?

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

r - 行列の固有値を計算するのにどれくらいの費用がかかりますか?

行列の固有値を計算するのにどれくらいの費用がかかりますか?

最高のアルゴリズムの複雑さは?

1000 x 1000 のマトリックスがある場合、実際にはどのくらいの時間がかかりますか? マトリックスがスパースであれば、それが役立つと思いますか?

固有値計算が終了しない場合はありますか?

ではR、次のおもちゃの例のように固有値を計算できます。

誰がそれが使用するアルゴリズムを知っていますか?

固有値を計算する他の (オープンソース) パッケージはありますか?

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

c++ - ブースト c++ ublas 行列およびベクトル型を使用した要素単位の演算

ブースト行列とベクトル型で要素単位の関数を実行したい。たとえば、各要素の対数をとり、各要素を累乗し、ガンマやディガンマなどの特別な関数を適用するなど (適用されたこれらの関数の matlab の処理と同様)行列とベクトルに。)

必要な関数ごとにこれをブルートフォースするヘルパー関数を書くだけで十分だと思いますが、これは無駄に思えます。

同様に、boost wiki は標準関数をベクトル化するコードを提供していますが、これは非常に複雑に思えます。

valarray が提案されていますが、他の操作 (行列積、疎行列など) には ublas データ型が必要なので、データ型間の変換は避けたいと思います。

どんな助けでも大歓迎です。

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

math - 高次線形回帰

私はマトリックスシステムを持っています:

A×B=C

AでありanBある。とはどちらも不明ですが、部分的な情報があり(一部の値はありますが、すべてではありません) 、システムが過度に制約されると予想されるほど小さいと判断されています。のすべての行または列が過度に制約されている必要はありません。nbABCnAB

このシステムに最適なものを見つけるために、最小二乗 線形回帰のようなものを探しています (注: 単一の一意のソリューションがないことはわかっていましたが、私が望むのは最良のソリューションの 1 つだけです)。


具体的な例を作るには; a と b はすべて不明で、c はすべて既知であり、? は無視されます。既知の c のみを考慮して最小二乗解を見つけたいと考えています 。


B が b11 と b21 のみにトリミングされ、未知の行 4 が切り捨てられた場合、これはほとんど標準的な最小二乗線形回帰問題であることに注意してください。

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

algorithm - 近くのポイントを見つけるためのアルゴリズム?

x,y 座標を持つ数百万点のセットが与えられた場合、ある場所から最も近い上位 1000 点をすばやく見つけるための最適なアルゴリズムは何ですか? ここでの「すばやく」とは、家庭用コンピューターで約 100 ミリ秒を意味します。

ブルート フォースとは、数百万回の乗算を行ってから並べ替えることを意味します。単純な Python アプリでも 1 分未満で実行できますが、インタラクティブなアプリケーションにはまだ長すぎます。

ポイントの境界ボックスは既知であるため、空間を単純なグリッドに分割することが可能になります。ただし、ポイントはやや不均一に分布しているため、ほとんどのグリッド スクエアが空で、突然、それらの一部にポイントの大部分が含まれると思われます。

編集:正確である必要はありません。実際にはかなり不正確になる可能性があります。たとえば、トップ 1000 が実際にはトップ 2000 からのランダムなポイントである場合、大した問題にはなりません。

編集: ポイントのセットはめったに変更されません。

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

python - numpy 線形代数の基本的なヘルプ

これは私がする必要があることです-

私はこの方程式を持っています-

Ax = y

ここで、A は有理 m*n 行列 (m<=n) であり、x と y は適切なサイズのベクトルです。A と y は知っていますが、x が何に等しいかはわかりません。また、Ax が正確に y に等しい x は存在しないことも知っています。Ax' が y にできるだけ近くなるように、ベクトル x' を見つけたいと考えています。(Ax' - y) が (0,0,0,...0) に可能な限り近いことを意味します。

lstsq 関数のいずれかを使用する必要があることはわかっています: http://www.scipy.org/doc/numpy_api_docs/numpy.linalg.linalg.html#lstsq

または svd 関数: http://www.scipy.org/doc/numpy_api_docs/numpy.linalg.linalg.html#svd

ドキュメントがまったくわかりません。これらの関数を使用して私の問題を解決する方法を教えてください。

どうもありがとう!!!

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

math - 画面上の点を等角的に投影された世界に投影解除する

2D アイソメトリック エンジンで世界をレンダリングしながら、舞台裏で 3D シミュレーションを行っています。私は以前に等角投影エンジンをやったことがなく、私の行列計算は一般的にさびているので問題があります。

私は射影行列を持っています。最も単純な形式は次のとおりです。

私のエンジンの座標系は左上が 0,0 で、+X が右/東、+Z が南であるため、いくつかの記号が反転しています。

さて、その逆は次のとおりです。

現在、これらのマトリックスはほとんど機能しています。

例えば

WC: 500,0,500 =画面: -1.44 , 350, 500 (X と Y は正しい)

WC: 0,0,500 =画面: -355 , 175, 500 (X と Y は再び正しい)

しかし、逆の方向に進む必要がある場合、便利な Z 値はもうありません。

Screen: -1.44, 350, 0 = WC: -2, -402.97, 0 (つまり、ゴミです。)

さらに、その Z 値がなくなるとすぐに、画面座標から世界座標を取得できなくなります。

ここでの回避策は何ですか?

編集

unproject のポイントは、マウス ピッキング用のレイを取得することです。

ここで私を台無しにしていたのは、私がしていたことに対する私の誤解だけのようです。

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

floating-point - 浮動小数点方程式の再調整

傾きの計算精度を上げる方法があれば教えてください。(これはここ数ヶ月前に出てきました)。

それは変更することによって思われます:

改善かもしれません。提案?

編集:私が求めているのは精度であり、効率ではありません。

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

matrix - LAPACK/BLAS または LDL 分解を計算するための Fortran サブルーチンはありますか?

タイトルが示すように、正定行列 A のコレスキー LDL 分解を形成する必要があります (通常のコレスキーと同様ですが、L の対角が 1 つあり、D は対角行列です)。Lapackでそれを行う関数を1つだけ見つけましたが、行列Aは三重対角でなければならないと言っています。lapack のようないくつかの無料のサブルーチン ライブラリでそれを行う何らかの関数はありますか?