- 締切済み
Octaveについて
つぎなようなプログラミングをしたいとき a=[1:0.1:2]; b=1.2; c=sqrt(a.^2-b); d=[3.^(c*3),3.^(-c*3);c.*3.^(c*3),-c.*3.^(-c*3)]; これで、dはaが1から2を0.1きざみで変化する時の行列のあたいを返してくれるとおもったのですが,ためしにa=1のときの値を計算してみたら最初の値と計算結果が違いました。 調べたのですがどのようにしたらよいかわからなかったので、質問させてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- cametan_42
- ベストアンサー率61% (154/250)
- cametan_42
- ベストアンサー率61% (154/250)
関連するQ&A
- 根号の中が負の時の計算機での正負判断は?
コンピュータで数値計算(言語はFortranやC)をする時、次のような場合はどう扱われるのでしょうか。 例1.sqrt(-4)の解は±2iの二つあるが、コンピュータではどうなる? 例2.a>b>0の時、sqrt(b-a)の解の正負符号はどうなる。 最初の値の符号に合わせられると聞いたことがあるが、本当ですか。もしそうならsqrt(b-a)=+・・・ 、sqrt(-a+b)=-・・・ となるのでしょうか。
- ベストアンサー
- 数学・算数
- 4次方程式の解
この度はよろしくお願いいたします。 題名のとおりで 次のサイト様 ttp://www.akamon-kai.co.jp/yomimono/kai/kai.html の計算方法(フェラーリの公式)を用いて4次方程式を 代数的に解こうとしたのですが初めてプログラムをしたに等しいので うまく解が出てきてくれません。 見にくいとは思いますがプログラムを以下に示しますので どこを直せばよいかの修正方法・もしくは他の方法がありましたらどうかよろしくお願いします。 use Math::Complex; # 定数の入力 print "aの値は?\n"; $a = <STDIN>; print "bの値は?\n"; $b = <STDIN>; print "cの値は?\n"; $c = <STDIN>; print "dの値は?\n"; $d = <STDIN>; print "eの値は?\n"; $e = <STDIN>; # ω・p1~p3の式 $j = (-1 + sqrt(-3))/2; $k = (-1 - sqrt(-3))/2; $f = -8*$a*$c+3*$b*$b; $g = -72*$a*$c*$e+27*$a*$d*$d+27*$b*$b*$e-9*$b*$c*$d+2*$c*$c*$c; $o = -256*$a*$a*$a*$e*$e*$e+192*$a*$a*$b*$d*$e*$e+128*$a*$a*$c*$c*$e*$e-144*$a*$a*$c*$d*$d*$e; $p = 27*$a*$a*$d*$d*$d*$d-144*$a*$b*$b*$c*$e*$e+6*$a*$b*$b*$d*$d*$e+80*$a*$b*$c*$c*$d*$e; $q = -18*$a*$b*$c*$d*$d*$d-16*$a*$c*$c*$c*$c*$e+4*$a*$c*$c*$c*$d*$d+27*$b*$b*$b*$b*$e*$e; $r = -18*$b*$b*$b*$c*$d*$e+4*$b*$b*$b*$d*$d*$d+4*$b*$b*$c*$c*$c*$e-$b*$b*$c*$c*$d*$d; $h = $o + $p + $q + $r; # xの3乗根を指数対数で表した式 $s = exp(log($g+3*sqrt(3*$h)/3)); $t = exp(log($g-3*sqrt(3*$h)/3)); # 解 $x1 = 1/(12*$a)*(-3*$b+sqrt(3*($f+2*$a*($s+$t)))+sqrt(3*($f+2*$a*($j*$s+$k*$t)))+sqrt(3*($f+2*$a*($k*$s+$j*$t)))); $x2 = 1/(12*$a)*(-3*$b+sqrt(3*($f+2*$a*($s+$t)))-sqrt(3*($f+2*$a*($j*$s+$k*$t)))-sqrt(3*($f+2*$a*($k*$s+$j*$t)))); $x3 = 1/(12*$a)*(-3*$b-sqrt(3*($f+2*$a*($s+$t)))+sqrt(3*($f+2*$a*($j*$s+$k*$t)))-sqrt(3*($f+2*$a*($k*$s+$j*$t)))); $x4 = 1/(12*$a)*(-3*$b-sqrt(3*($f+2*$a*($s+$t)))-sqrt(3*($f+2*$a*($j*$s+$k*$t)))+sqrt(3*($f+2*$a*($k*$s+$j*$t)))); # 解が成立する時の条件 if($s*$t == 4*(12*$a*$e-3*$b*$d+$c*$c) , sqrt(3*($f+2*$a*($s+$t)))*sqrt(3*($f+2*$a*($j*$s+$k*$t)))*sqrt(3*($f+2*$a*($k*$s+$j*$t))) == 27*(-8*$a*$a*$d+4*$a*$b*$c-$b*$b*$b )){ print $x1 , "\n"; print $x2 , "\n"; print $x3 , "\n"; print $x4 , "\n"; } else{break;}
- 締切済み
- Perl
- cのプログラミングで虚数を含む行列の計算の考え方がわかりません
cのプログラミングで行列の積を計算するものまではできたのですが、その行列の中に虚数を含むものの考え方がよくわかりません。 たとえば ia b c id (a,b,c,dが実数、iが虚数) というような行列があるときこれと同じものの積を何回かするプログラムを作るとき、虚数をどのような対処をすればいいのでしょうか? よろしくお願いします。
- 締切済み
- C・C++・C#
- 行列の証明問題です。
大学受験問題の参考書にのっているのですが、わかりません。よろしくお願いします。 この問題は、行列なので、行列の中は、(a,b,c,d)=(左上、右上、左下、右下)というように書かせてもらいます。 問題は、 2x2行列A=(a,b,c,d)に対し、Δ(A)=ad-bcとする。このとき、次の等式を証明せよ。 Aが逆行列をもつとき、Δ(A^-1)=Δ(A)^-1 私は実際に計算し、等号で結ぼうと思いました。 私の計算結果は次の通りです。 A^-1=1/(ad-bc)(d,-b,-c,a)より Δ(A^-1)=(1/(ad-bc))*(ad-bc)=1・・・I Δ(A)^-1=(ad-bc)^-1=1/(ad-bc) ですが、上記のように、答えがありません。 解答はこのように具体的には計算しない解法なのですが、 私のように実際に計算しても答えは合うはずですよね? でもどこが間違っているのかわかりません。 どなたかご存知の方、アドバイスをいただけませんか。 よろしくお願いいたします。
- ベストアンサー
- 数学・算数
- 平面の式と逆行列
3点(0,2,2) (-2,0,0) (0,-2,-2次に)通る平面を求めました。 平面の式 ax+by+cz=0 にそれぞれ代入しa,b,c,dの連立方程式として求め、 2b+2c+d=0 -2a+d=0 -2b-2c+d=0 答えy-z=0 を得ました。次に、簡単化のため逆行列でa,b,cをdの式で求めようとしたところ、なんと行列式がゼロとなり求められません。 なぜ?直線上にない3点が定まれば平面が一意に定まり、当然逆行列も存在すると思ってましたが、違うのですか?また、この場合どうやって求めたらいいでしょうか?もちろんて計算ではなく自動計算化を考えてのことです。
- ベストアンサー
- 数学・算数
- (4×4)行列の逆行列の求め方について
以下の問題がわかりません。 どなたか簡単な解き方がわかる方いらっしゃいませんでしょうか。 下の行列について、逆行列を求めなさい。 (4×4)行列で要素は以下。 a -b -c -d b a -d c c d a -b d -c b a 答えは、 1/(a^2+b^2+c^2+d^2)*(以下の要素の行列) a b c d -b a d -c -c -d a b -d c -b a 余因子行列を使って一つ一つの要素を16回計算すれば出るのですが、 時間がかかりすぎてしまいます。 何か良いやり方はないでしょうか。
- ベストアンサー
- 数学・算数
- python numpyで行列作成
numpyを使って行列計算を行おうとしていますが、肝心の行列作成でつまづいています。 下記のような書き方はできないんでしょうか? A = numpy.array([a, b, c], [b, c, d], [c, d, e]) (a~eは実数型の変数、3x3の行列を作りたい) web上で探した結果、数値は全てリテラルになってるようですが、 変数を使った初期化は無理ですか?
- ベストアンサー
- その他(プログラミング・開発)
お礼
ありがとうございました。