ホームページ > ウェブフロントエンド > jsチュートリアル > 対角優勢行列用の JavaScript プログラム

対角優勢行列用の JavaScript プログラム

WBOY
リリース: 2023-08-27 13:53:13
転載
663 人が閲覧しました

对角占优矩阵的 JavaScript 程序

行列はコンピューター サイエンスと数学における重要なツールであり、難しい計算をすばやく近似するために使用できます。行列は、データや数学的問題を表すことができる、行と列に編成された数値の集合です。

この記事を通じて、対角ドミナント行列を理解します。対角優勢行列の概念、アルゴリズム、例、およびさまざまなプログラミング言語での実装について学びます。

対角優勢行列

行列の各行について、その行の対角要素のサイズがすべての非対角要素のサイズの合計以上である場合、正方行列を対角優勢と呼ぶことができます。簡単に言うと、行列の対角要素を除いた要素の合計が対角行列より小さい場合です。

i 行 j 列を含む正方行列 a がある場合、数式を使用してそれを対角支配行列として表すことができます -

$$\mathrm{|\:a_{ii}\:|\:\geq\:\displaystyle\sum\limits_{j

eq\:i}\:|\:a_{ij} |} $$ は私のものです ここで、aij は列 i と j のエントリを表します。 ###例### リーリー

この行列は次の条件を満たすため、斜め支配的です -

リーリー ###問題文###

正方行列が与えられた場合、その行列が対角優勢であるかどうかを確認する JavaScript プログラムを作成します。

###例###

3x3 行列を考えてみましょう -

リーリー

ここで、各行の対角要素は 4、4、4 であり、これらはすべて行内の他の要素の絶対値の合計よりも大きくなります。したがって、この行列は斜めに支配的です。

次に、上記の問題の解決策を見てみましょう。

方法 1: ブルート フォース クラッキング

総当たり法では、行列の各行を反復処理し、対角要素が行内の他の要素の絶対値の合計より大きいかどうかを判断します。

###アルゴリズム###

行列の行を繰り返します。

各行の他のコンポーネントの絶対値の合計を計算します。

  • 行の対角要素がステップ 2 で決定した合計以上であるかどうかを確認します。

  • 対角要素が合計以上の場合は、次の行まで繰り返します。

  • 対角要素が合計より小さい場合は、行列が対角的に優勢ではないことを示す false を返します。

  • ###例### リーリー

    時間計算量: O(n2)、n は行列のサイズです。

  • 方法 2: 並べ替え
  • このメソッドでは、各行の絶対値を降順に並べ替えます。次に、行の対角要素が n-1 個の絶対値の最大合計以上であるかどうかを判断します (n は行列のサイズです)。

    ###アルゴリズム###

行列の行を繰り返します。

行項目を絶対値で降順に並べ替えます。

最大の n-1 個の絶対値を加算します。ここで、n は行列のサイズです。

  • 行の対角要素が手順 3 で決定した合計以上であるかどうかを確認します。

  • 対角要素が合計以上の場合は、次の行まで繰り返します。

  • 対角要素が合計より小さい場合は、行列が対角的に優勢ではないことを示す false を返します。

  • ###例### リーリー

    時間計算量: O(n

    2
  • log n)、n は行列のサイズです。
  • 方法 3: 行のスケーリング

  • このメソッドでは、まず行列の各行をスケーリングして、その対角要素が 1 に等しくなるようにします。次に、行内の他のエントリの絶対値が 1 より小さいかどうかを確認します。
  • ###アルゴリズム###

  • 行列の行を繰り返します。

絶対値が最も大きい行を識別します。

対角要素が 1 になるまで行を拡大縮小します。

行内の残りのエントリの絶対値が 1 未満かどうかを確認します。

  • すべての行がステップ 4 の基準を満たしている場合は true を返し、行列が対角方向に優勢であることを示します。

  • ステップ 4 の要件を満たさない行がある場合は、行列が対角的に優勢ではないことを示す false を返します。

  • ###例### リーリー

    時間計算量: O(n

    3
  • )、n は行列のサイズです。
  • ###結論は###

    このブログでは、さまざまな方法を使用して行列が対角優勢であるかどうかを調べるプログラムについて説明します。それらの中には、ループ、並べ替え、および行スケーリング方法を使用するものもあります。この情報がお役に立てば幸いです。

以上が対角優勢行列用の JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート