>>311
>Q.行列Aのランクを求めるアルゴリズムを1つ示せ

ふっふ、ほっほ
下記 mathematica Wolfram言語にありますがな、だんなw ;p)

なお 下記
・(独り言) :計算練習は計算結果を出すのが目的ではなくて,むしろどのように計算すればよいのか,その意義は何なのか,ということを理解する方が大事なのである.
 そこを理解せずに計算機に頼りっ放しになると,ひどいしっぺ返しをくらうであろう.

これを噛みしめようね、おサルさん>>9
G大初学者が、>>312の”飯高茂先生の >>279『「8割の学生がわかるように」 自分でいろいろ格言を作る ”第1行と第2行が同じだったら,隣の行をカンニングしているのだから,0点である”』”
ここから
慣れていくのは良いが、mathematica Wolfram言語 にも慣れましょうね
実社会で扱う行列は 100万x100万サイズは当たり前だ

100万x100万サイズの行列など、人が手計算で扱える範囲を超えているw ;p)

(参考)
https://reference.wolfram.com/language/ref/MatrixRank.html.ja?source=footer
Wolfram言語 & システム
ドキュメントセンター
MatrixRank
履歴
2003 で導入 (5.0) | 2007 で更新 (6.0) ▪ 2014 (10.0) ▪ 2022 (13.2) ▪ 2024 (14.0)

https://www.ma.noda.tus.ac.jp/u/tg/mathematica/math4.pdf
平成17年度数式処理第4回(11/28)線形代数行列

階数
■行列の階数を求める関数を自分で定義してみよう.次が一つの答えである.
rank[x.] Dimensions [x] [[2]] Length{NullSpace[x]} (9)
少し長い定義である.
少しずつ解説しよう.
このようなプログラムの意味を理解するには,実際何が行われるのか実験するのがよい.
まず,行列dを定義しよう.
実はこの行列の階数は2であることが標準形に直してみれば分かる.

Dimensionsは行列の次元(すなわち行の個数と列の個数)をリスト形式で出力する.
また,リストLに対し,L[[n]]はLのn番目のオブジェクトを出力する.
すなわち,(9)の前半部分は行列の列の個数を表しているのである.

• (独り言)
諸君は,線形代数の授業で,上の計算を苦労して手計算でやってきたであろう.
それが,計算機が一瞬で計算してしまうのを見てしまい,自分の苦労が何だったのか,と思うかもしれない.
しかし,計算練習は計算結果を出すのが目的ではなくて,むしろどのように計算すればよいのか,その意義は何なのか,ということを理解する方が大事なのである.
そこを理解せずに計算機に頼りっ放しになると,ひどいしっぺ返しをくらうであろう.
所詮計算機は命令されたことしかできないのであるから,判断して命令を下すべきは人間なのである.
昨今,計算は電卓にさせればよいから難しい計算の練習は必要ない,と考える風潮があるが,それは考え違いであろう.
計算機は確かに便利ではあるが,万能ではないのだから,補助のために用いる,という考え方が正しいと思う.