問題タブ [linear-equation]
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.
algorithm - 配列の行を交換するために置換行列が使用されるのはなぜですか?
行を入れ替えるために置換行列を使用する利点は何ですか?置換行列を作成してから行列の乗算を適用するのはなぜですか?行をforループで交換するよりも簡単で効率的ですか?
python - 疎行列の逆行列を使用した行列の Python 左乗算
K = P*CT*S^-1 という形式の式を計算しようとしています (カルマン フィルターの実装)
関連するすべての行列は疎であり、もちろん実際の逆行列を計算することは避けたいと思います。
使ってみた
問題は、spsolve が 2 番目の引数が行列ではなくベクトルであると想定していることです。
編集:明確化、問題はMatlabでK = P *(C / S)で解決できるため、私が探しているのはspsolveに似た方法ですが、2番目の引数として行列を受け入れることができます。これはもちろん、C をいくつかの列ベクトル c1..cn に分割し、それぞれの問題を解決してから行列に再構築することで実行できますが、それを行うのは面倒で非効率的であると思われます。
edit2&3: 行列のサイズは通常、P~10⁶x10^6、S~100x100、C=100x10⁶ 程度です。P 対角および S 対称であり、C には行ごとに 1 つの要素しかありません。これは、スパース行列を使用したカルマン フィルターの実装に使用されます。
http://en.wikipedia.org/wiki/Kalman_filter#The_Kalman_filter
math - 2つの未知数3方程式
私は3つのeqnsと2つの未知数HbとHbo2を持っています、それらは次のようになります:
Bxy = AB * HB + AB * Hbo2
Rxy = AR * HB + AR * Hbo2
Gxy = AG * HB + AG * Hbo2
今、私はそれらの方程式の未知数を解くために行列法を使おうとしています。これは、2つの未知数と3つの方程式であるため、行列形式に変換すると不規則な行列になります。
ここにいる誰かが、n-1個の未知数を持つn個の方程式を解く方法を知っていますか?
編集
これまでの回答に感謝します、彼らは素晴らしかったです。
これをより明確にするために、私がやろうとしているのは、画像内の特定のピクセルでの酸素化および脱酸素化された血液の濃度を計算することです。したがって、上記の変数は以下に対応します。
Rxy GxyおよびBxy、位置x、yで吸収された赤緑または青。(0〜255の値)
AR、AG、ABは、血液の赤の波長と青の波長の光の吸収係数です。(ただし、酸素化された血液と脱酸素化された血液に対して異なる吸収係数を定義しなければならない可能性があります(異なる量の光を吸収するため))。
HbとHbo2は、酸素化および脱酸素化された血液の濃度です。(RGB値をこれにマッピングしようとしているため、これらは不明です)
ただし、酸素化血液と脱酸素化血液の係数が異なることにも気づきました。これは、方程式が次のようになる可能性があることを意味します。
Bxy =(ABhb * HB)+(ABhbo2 * Hbo2)
Rxy =(ARhb * HB)+(ARhbo2 * Hbo2)
Gxy =(AGhb * HB)+(AGhbo2 * Hbo2)
上記の唯一の違いは、酸素化された血液と脱酸素化された血液の係数が異なることです。
これはすべて、コンピュータサイエンスのための大学での私の最終年度プロジェクトの一部であり、いくつかの機能的なイメージングを試みています。
@Chrisは、係数が異なる場合にも同じことを行います。理解が不足していることをお詫びします。数学は私の最強のポイントではありません。このアルゴリズムをプログラムしようとしているだけです。
math - 非正方行列で連立一次方程式を解く
解く必要がある行列 (つまり、非正方) を構成する線形方程式のシステムがあります。または、システムに解がないことを示すためにNxM
、少なくとも解こうとします。(おそらく、解決策はありません)
私が理解しているように、行列が正方でない場合 (過小決定または過小決定)、正確な解を見つけることはできません。これを考えるのは正しいですか? 行列を正方行列に変換して、ガウス消去法、クラメールの法則などを適用する方法はありますか?
私の未知数の係数がゼロである可能性があることに言及する価値があるかもしれないので、特定のまれなケースでは、ゼロ列またはゼロ行を持つことが可能です.
c++ - 三重対角行列で一次方程式系を解くためのライブラリ?
私は熱伝導を伴う物理システムをモデル化しています。数値計算を行うには、三重対角行列を使用して線形方程式系を解く必要があります。このアルゴリズムを使用して結果を取得しています: http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithmしかし、私の方法は簡単で最適ではないのではないかと心配しています。そのシステムを最速で解決するには、どの C++ ライブラリを使用する必要がありますか? また、マトリックスは頻繁に変更されないことにも言及する必要があります (方程式の右側の部分のみが変更されます)。ありがとう!
binary-tree - 写真コラージュアルゴリズム
http://lightbox.com/explore#spotlightで行われているのと非常によく似たコラージュのように写真を動的に配置するスクリプトを作成しようとしています。
もちろん、さまざまな写真のセットでそれぞれのケースを処理するコードを書くことはできますが、任意の数の写真を処理できるアルゴリズムが必要です。ここで説明されているアルゴリズムhttp://www.hpl.hp.com/techreports/2008/HPL-2008-199.pdfの第 4 章は、私が必要とするものと非常によく似ているようです。私の場合、垂直方向と水平方向の比率は常に同じです。境界ボックスを定義し、各ノードを分割できるレベル数を定義します。境界ボックスは、横長の写真と同じ比率になります。アルゴリズムがすべての画像に収まらない場合は、1 レベル戻ってそのままにしておくか、使用可能な写真のプールから別の写真を選びます。
私の質問は、これと非常によく似ています Algorithm Arrange images on screenですが、先に進む方法がわかりません。さらなるガイダンスや疑似コードは非常に役に立ちます。
matlab - セル配列で方程式を解く
私はこのようなセル配列にいくつかの一次方程式を持っています(方程式の数は毎回異なります):
Matlabでこれらの方程式をどのように解くことができますか?この関数だけで答えを得ることができます:
しかし、方程式の数は毎回異なるので、これを自動的に実行したいと思います。
parallel-processing - ksp ガイドを使用した PETSc 解法線形システム
線形連立方程式を並列に解くために PETSc ライブラリを使用し始めています。すべてのパッケージをインストールし、petsc/src/ksp/ksp/examples/tutorials/ フォルダー内のサンプルを正常にビルドして実行しました (ex.c など)。
しかし、行列 A、X、B を、たとえばファイルから読み取って埋める方法がわかりませんでした。
ここでは、ex2.c ファイル内のコードを提供します。
誰かが例の中で自分の行列を埋める方法を知っていますか?
php - グレード 1 の線形方程式系を解くための PHP アルゴリズム
PHPで解決するグレード1の連立方程式があります。方程式は変数より多いが、方程式は変数より少ないわけではない。
システムは次のようになります。n 式、m 変数、変数は x[i] で、'i' は 1 から m までの値を取ります。システムには解決策がある場合とない場合があります。m は最大 100、n は最大 5000 (千) です。
これらの連立方程式を数千ほど解く必要があります。速度が問題になるかもしれませんが、今のところ PHP で書かれたアルゴリズムを探しています。
それを行うことができる Cramer ルールがあります。係数の正方行列を 1 つ作成し、(行列の行列式を計算することによって) Cramer 規則でシステムを解決し、未使用の方程式の値をチェックする必要があります。私は自分でCramerを試すことができると信じていますが、より良い解決策を探しています.
これは計算科学の問題です 。 http://en.wikipedia.org/wiki/Computational_science#Numerical_simulations 私の問題を解決するための複雑なアルゴリズムがいくつかあることは知っていますが、どれがそれを実行し、どれが最適かはわかりません私の場合。アルゴリズムは、デモンストレーションを伴う理論だけでなく、私をよりよく使用します.
私の質問は、グレード 1 の線形方程式系を解決するために PHP で記述された何らかのクラス、スクリプト、コードを知っている人はいますか? あるいは、API や Web サービスを試すこともできます。
ありがとうございました
java - 一次方程式java
以下の式をプログラミングコードに変換しようとしています。目的は、2本の線の交点を見つけることです。そしてprontに
(y1-y2)x-(x1-x2)y =(y1-y2)x1-(x1-x2)y1
(y3-y4)x-(x3-x4)y =(y3-y4)x3-(x3-x4)y3
クラメルの公式を使用するように言われましたが、クラメルの公式には6つのdiff変数があります。8つの変数(x1、y1、x2、y2、x3、y3、x4、y4)として4つの異なるポイントから始めます。
私はJavaを使用しています。どんな助けでもいただければ幸いです。このサイトで尋ねられる質問はすべて、長く複雑なコードを含むさまざまなタイプの一次方程式に関するものですが、私に関連するものは見つかりませんでした。
これは私が持っているものですが、上記の方程式からプログラム可能なものへの移行は本当に私を困惑させます。