• 締切済み

Javascriptでの行列計算

Javascriptでの行列計算 Javascriptで行列計算のプログラミングの作成を考えています。 例として、 G*v=I が成り立つと仮定し、vのベクターを求めたいのです。 Gはn*nの行列で、Iはn*1のベクターです。nは最大で10000になります。一次連立方程式を使ってvベクターを求めることは可能ですか?効率のいいアルゴリズムはありますでしょうか?消去法を使えばいいのかなと考えていますが,行列計算に関してあまり知識がないので、ここで質問させていただきました。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

G の形に前提条件がないなら消去法を選ぶのがもっとも無難. もちろん #1 で言われるように「スクリプト言語はたいてい遅い」ということは覚悟しなければなりません.

ibuneko
質問者

お礼

消去法がやはり一般的のようですね。あと、早さを考えるなら、javascriptはやはり、難しいですね。回答ありがとうございます。

  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.1

> nは最大で10000になります。 Script言語は一般に遅いです。 他の言語を選択することをお勧めします。

ibuneko
質問者

お礼

Javascriptを使ってinterfaceを作っていたので、行列計算もjavascriptでやりたいと思っていたのですが、やはり、Cなどの言語を使ってみようと思います。cgiを使うとページが飛んでしまうので、それを避けたかったのですが、jqueryで非同期通信をいうのを見つけたので、その方法でやってみたいと思います。回答ありがとうございました。

関連するQ&A

  • 行列の計算

    お恥ずかしいながら、行列の計算でてこずっております。 以下の問題です。 行列A、Bをn×n行列とする。 また行列Aのi,j成分をa(i,j)とし、行列Bのi,j成分をb(i,j)とする。 ここで a(i,j) = {n-i+1 (1≦j≦i), n-j+1(i+1≦j≦n)} b(i,j) = {1(i=j=1), 0(i≠j-1, j, j+1), -1(i=j-1, j+1), 2(j=k)} である。 このとき、行列A×Bのi,j成分を求めよ。 という問題です。 答えはi=jのとき1,i≠jのとき0 (つまり、A×B=I(n×nの単位行列)) なのですが、そこまでの計算のプロセスが分かりません。 分かり易いご解答をお待ちしております。

  • 行列の計算

    n次の正方行列があるのですがそれぞれの成分が 1/(i+j-1)と言う分数が並んだものです。 この行列の一番大きい固有値と一番小さい固有値の 比を計算したいのですがnが4くらいになると手計算の 限界なので何か良い方法はないでしょうか? 手計算ではなく何か別の手段でも何でも構いません。

  • 複素数の行列計算

    はじめて投稿します。 3行3列の複素数の行列の逆行列を計算し、連立方程式を解きたいとのですが、逆行列を求める公式を教えていただけないでしょうか。 よろしくお願い致します。

  • Σの計算について(行列を含む)

    よろしくお願いします。 以下のΣの計算になりますが行列を含みます。 このことによりちょっと混乱が生じ、正しい解答を導くことができません。 順序立てて回答を頂けると幸いです。 N=10で構いません。 N Y = Σ(A) ・x^n・x^(N-n) n=1 行列 A は以下のように1行2列です(括弧がうまく書けません)。 N n

  • 松坂『線形代数入門』:表現行列の標準系

    本書のp205の命題6.10 V,Wをそれぞれn次元、m次元のベクトル空間とし、F:V→Wを線形写像とする。Fの階数がrならば、V、Wの基底α、βを適当に選んで、Fを次の形の行列で表現することができる [I_r O_r,n-r Om-r,r Om-r,n-r] I_rはr次の単位行列、Oはそれぞれ付記された添数の型の零行列を表す。 r次の単位行列を0で埋めてm*nにした行列です。 教科書の証明は KerFはn-r次元であるから、その基底を{v_r+1,...,v_n}とするとして、 それを拡張したVの基底を{v_1,...,v_r,v_r+1,...,v_n}とするそのとき F(v_1)=w_1, ..., F(v_r)=w_r とおけば、{w_1, ... , w_r}はImFの基底となる。 そこで{w_1, ... , w_r}を拡張したWの基底を{w_1, ... , w_r , w_r+1, ... ,w_n}とすれば F(v_r+1)=0 , ... ,F(v_n)=0 より表現行列は明らかに上で示した形になる。 なぜこれで示せているのかわからないです…

  • 行列の問題を教えてください。

    行列の問題で解けなくて困っています. よろしければ教えていただけないでしょうか。 行列に関係する以下の問い(1)~(4)に答えよ。 (1)2行2列の行列をAとする。さらにその固有値をλ1,λ2(λ1≠λ2)とし、それぞれに付随する固有ベクトルを(x1,y1)と(x2,y2)とする。 P≡ |x1 x2| |y1 y2| と置くと、固有値と固有ベクトルの定義から AP=P|λ1 0| |0 λ2| と書ける。ここから、 A=P|λ1 0|P^-1 | 0 λ2| および A^n=P|λ1 0|^nP^-1 |0 λ2| となることを示せ。ここでP^-1はPの逆行列、nは正の整数、A^nは行列Aのn乗を示す。 (2)固有値が1と-1である2行2列の行列Bがある。この行列のn乗B^nを求めよ。さらにその逆行列(B^n)^-1を求めよ。B^nと(B^n)^-1の両方において、nが偶数と奇数で答えが異なるので、両者を区別して答えを示せ。必要なら2つの正則な正方行列B1、B2の積の逆行列が (B1B2)^-1=B2^-1B1^-1 となることを使え。 (3)固有値が1と-1で、それぞれに付随する固有ベクトルが(2,1)と(1,1)である2行2列の行列Cを求めよ。 (4)xとyを未知数とする次の連立方程式 |3 -4|^21 |x| =|10| |2 -3| |y| |7| を解け。ここで |3 -4|^21 |2 -3| は行列 |3 -4| |2 -3| の21乗を表す。 という問題です。 計算過程、解答のほうをどうかよろしくお願いいたします。

  • 行列の分割に関する問題の解答をお願いします。

    n次正方行列Aとn次列ベクトルvに対して、(n+1)次正方行列T(A,v)を T(A,v)=|A v|      |O 1| とおいて定めるとき、次の問いに答えよ。 (1)n次正方行列A,Bとn次列ベクトルu,vに対して、 T(A,u)T(B,v)=T(C,w) となるC,wをA,B,u,vを用いて表せ。 (2)Aが正則行列であるとき、T(A,v)も正則行列であることを示し、その逆行列T(A,v)^-1を分割した行列の形で求めよ。 よろしくお願いします。

  • 行列の漸化式

        |-q[n]  1| Q[n]=|      | | 1   0| の2×2行列について、A=Q[n]×Q[n-1]×....×Q[0] とする。 横ベクトルV=(0 1)、縦ベクトルU=(1)                     (0) として VAU を求めよ。 どなたかヒントなどおねがいします!

  • 逆行列

    逆行列の証明です。 わかる方、教えてください。 n次元のベクトル、x_1~x_k (1≦k≦n)は1次独立であると仮定したとき、(g(αβ))=x_α ・ x_β (注…xは太字で表していませんがベクトルなので、右辺はもちろん内積です。ちなみにここでの添字α,βはベクトルの要素を表すのではなく、ベクトルの番号を表します) を(α,β)要素とするようなk次の正方行列G=(g(αβ))を考える。 このとき、Gの逆行列G(-1)=(g(αβ))(-1)が必ず存在することを証明してください。 ーーーーーー おそらく行列式を用いて証明するのでしょうが、はじめの1次独立という仮定をうまく利用できません。2次形式を用いてみたら?というアドバイスもいただいたのですが、こっちのほうがもっと手付かずです。 どなたかわかる方、書き表し方が見にくくてすみませんが教えてください。 あと、(g(αβ))(-1)は(g(αβ))の逆行列です。

  • 線形代数 行列式

    分からないのは以下の問題です. 次の連立1次方程式を考える。 (1+λ[1])x[1]  + λ[1]x[2]       + λ[1]x[3] + ・・・+λ[1]x[n] =λ[1] λ[2]x[1]     + (1+λ[2])x[2]   + λ[2]x[3] + ・・・+λ[2]x[n] =λ[2] ・           ・        ・           ・    ・   ・           ・        ・           ・    ・ λ[n]x[1]     + λ[n]x[2]    + λ[n]x[3] + ・・・+(1+λ[n])x[n] =λ[n] 以下の問いに答えよ. (a)この連立1次方程式の係数行列をAとする.Aの行列式|A|を求めよ. (b)|A|≠0のとき,この連立1次方程式の会を求めよ. (a)は |A|= |(1+λ[1]) + λ[1]       + λ[1] + ・・・+λ[1]| |λ[2]     + (1+λ[2])   + λ[2]+ ・・・+λ[2] | |   ・       ・      ・         ・|     |   ・       ・      ・         ・|     | λ[n]     + λ[n]    + λ[n] + ・・・+(1+λ[n])| となり (1+λ[1]+λ[2]+・・λ[n])でくくりだせて、計算していくと (1+λ[1]+λ[2]+・・λ[n])となるのですが、答えはこれで合っているのでしょうか? (b)はわかりません。 答えがないので分かる方、教えてください。