S=(d*(d-a)*(d-b)*(d-c))^(1/2) ただしd=(a+b+c)/2
以降、計算しやすいように変形していく(記号式にエクセル関数等を混在させて半端な式になったが意味は通るだろう)
S =((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c)/16)^(1/2)
=product(a+b+c, -a+b+c, a-b+c, a+b-c)^(1/2)/4
=product(mmult({1, 1, 1; -1, 1, 1; 1, -1, 1; 1, 1, -1}, {a; b; c}))^(1/2)/4 (a~cに縦配列を使用した場合)
=product(mmult( {a, b, c},{1, -1, 1, 1; 1, 1, -1, 1; 1, 1, 1, -1}))^(1/2)/4 (a~cに横配列を使用した場合)(r060613 ミスを訂正)
(r060613 上の式をlibreofficeのmathで書いた)(r060623 より上の式に近い画像に変更)
![](https://blogimg.goo.ne.jp/user_image/5d/9a/fc40e8c6c46749ed070e3eb098d14a7b.png)
たとえば (r060613 以下縦配列の式も追記)
b1 =aの長さ b2 =bの長さ b3 =cの長さ b4 =三角形の面積S (a~cに縦配列を使用した場合)
a2 =aの長さ b2 =bの長さ c2 =cの長さ d2 =三角形の面積S (a~cに横配列を使用した場合)
ならば
b4 =product(mmult({1, 1, 1; -1, 1, 1; 1, -1, 1; 1, 1, -1}, b1:b3))^(1/2)/4 (a~cに縦配列を使用した場合)
d2 =product(mmult( a2:c2, {1, -1, 1, 1; 1, 1, -1, 1; 1, 1, 1, -1}))^(1/2)/4 (a~cに横配列を使用した場合)
余談1
配列セル式(仮)を使ってみると(配列定数の方がシンプルだが)
b4 =product(mmult(if(column($a$1:$c$4)=row($a$1:$c$4)-1,-1,1), b1:b3))^(1/2)/4 (a~cに縦配列を使用した場合)
d2 =product(mmult(a2:c2,if(column($a$1:$d$3)=row($a$1:$d$3)+1,-1,1)))^(1/2)/4 (a~cに横配列を使用した場合)
(リブレオフィスではそのまま。グーグルドライブでは配列数式が必要だった。)
余談2
5リミット音律の2^x*3^y*5^zの(x, y, z)は疑似的なベクトルと言えそうだが
三辺の長さa,b,cを(a, b, c)と書いてもベクトルと言う気がしない。
今回の計算は行列計算の仕組みを利用しているだけなのか。
余談3 (r060622追記)
productの代わりに対数とsumproductを使ってみる
b4 =exp(sumproduct(LN(MMULT(IF(COLUMN($A$1:$C$4)=ROW($A$1:$C$4)-1,-1,1),b1:b3))/2))/4 (a~cに縦配列を使用した場合)
d2 =exp(sumproduct(ln(MMULT(a2:c2,IF(COLUMN($A$1:$D$3)=ROW($A$1:$D$3)+1,-1,1))))/2)/4 (a~cに横配列を使用した場合)
余談4 (r060623追記)
没にした画像
![](https://blogimg.goo.ne.jp/user_image/33/d2/8512efe8d2a47a84c01f9aa13847c36b.png)