ただいま仕事で展開図を作っています。
そこで三角形の面積を求めるのにヘロンの公式を使っていますが
座標法で求めたものと数値が違います。

座標法での計算式は
http://www.hat.hi-ho.ne.jp/sokubou/mensekirei.htm
のURLにあるやりかたです。
なお座標は、CAD上で読み取った簡易的なものです。

ヘロンの公式と、座標法ならどちらの方が真値に近いのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (8件)

#5.6です。

回答する前に閉じられては…と思い、#6の回答は大急ぎだったので補足を。
誤差はあると思ってはいたのですが、検証したことがなかったので良い機会だと思い、実験してみました。

先ほどの回答、辺長A=0.9、辺長B=2.6、辺長C=2.491が検証の基準です。

座標点b:2.337,717.861 は、8桁では
座標点b:2.33751558,717.86087277

この時点で、誤差はしょうがないと諦めなければ仕方ありません。計算結果は先の回答。

この図形を縦横ともに1000倍し、結果を1000000で割った場合

座標計算値は:1.11913460214394となり、ヘロンの公式との差が大きくつめられました。
↑必要な精度によっては、このような手法も考えられるという例です。

先ほどの0.3-0.2-0.1+0の例は、コンピュータでの計算には誤差が必ずあるので、信頼できる範囲に限りがあるということです。0.1という十進数は二進ではありえない数値です。参考は、
http://pc.nikkeibp.co.jp/pc21/special/gosa/index …

ヘロンの公式については、Excelにて
A,B,C列に各辺の値
D列:=IF(OR(A6="",B6="",C6=""),"",SUM(A6:C6)/2)
E列:=IF(ISNUMBER(D6),(D6*(D6-A6)*(D6-B6)*(D6-C6))^0.5,"")
として計算しております。余分なIF関数と、6行目から始まっていることは、こちらの既存ファイルからのコピーですのでお許しを…。
    • good
    • 0
この回答へのお礼

何度もありがとうございます。

検証までしていただき本当に感謝です。

余談の話が大きく膨らんだ気がしますが
きのせいですねw

今後の勉強になりました^^

お礼日時:2006/06/28 09:22

>>=0.3-0.2-0.1+0


>不思議なことをエクセル君言っております。
>-2.7756E-17???
有理数を2進数に置き換える時に、誤差が生じてしまうからです。
excelでのその過程を概説しているページを見つけたので。
http://oku.edu.mie-u.ac.jp/~okumura/software/exc …

これを、きちんと計算するには、10進演算プログラムというものが必要です。
BCD(2進化10進数,つまり2進の計算機での10進法のエミュレーション)とも言われます。
概念的には、各桁毎に変数を用意してそれぞれ0~9のみを入れて、筆算をするごとく、一個ずつ計算して、答え用の各桁用変数にデータを入れていくといったイメージです。
しかし、計算時間が長くなるので、科学計算とか、お金を扱うプログラムなど、精度管理の重要なものに使われます。
phyton用だけど演算方式の違いの説明が載ってるページ
http://www.python.jp/doc/release/lib/module-deci …

プログラマーでないなら細かいところは必要ないですけど、どのプログラムで計算させるかの参考程度に述べてみました。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

エクセルの勉強になります^^
ちと難しいですが、勉強してみます。

お礼日時:2006/06/28 09:19

#5です。

#4様へのお礼を拝見いたしましたが、
ヘロンの公式間違えていませんか?

辺長A=0.9
辺長B=2.6
辺長C=2.491

を元に計算した結果
座標での計算:1.11913460100002
ヘロンの公式:1.11913460214352
キャドデータ:1.11913460

となりましたが。
    • good
    • 0
この回答へのお礼

ぬあ^^;

恐れていたことが・・・

申し訳ありません。
何度もありがとうございます。

お礼日時:2006/06/28 09:17

>PCを使う以上避けては通れない道ですかね^^;


そのとおりだと思います。

座標法、ヘロンともに面積計算に利用しています。
誤差を少なくするために、座標抽出は、CAD側にて小数点以下8桁として行い、抽出データをExcelに貼り付けて計算しています。やっている感じとしては、CADから辺長を抽出し「ヘロンの公式」で行ったほうが、やや正確な気がしますが、作業効率を考えると圧倒的に座標計算です。計算結果とCADのオブジェクトデータ(これも抽出し貼り付け)を比較して、小数点以下○位の四捨五入で=ならば"OK"という判定で検算しております。

※使用CAD:AutoCADLT2000、Excel2000

コンピュータに限らず計算には誤差はつき物なので、どれだけの精度が必要か?という部分の吟味が必要だと思います。

余談ですが、Excelにて=0.3-0.2-0.1+0を計算してみてください。あれ?
    • good
    • 0
この回答へのお礼

回答ありがとうございます^^

詳しい検算の方法まで教えていただいて感謝です♪

試しにやってみました>=0.3-0.2-0.1+0
不思議なことをエクセル君言っております。
-2.7756E-17???
エクセル君どうしたのでしょうか???
これが有効桁数とかの関連で出る結果なのですか?
(バグではないんですよね?)

お礼日時:2006/06/27 16:57

>PCを使う以上避けては通れない道ですかね^^;


仰有るとおりです。ただ両者の違いはほんの僅かの筈で、実害のない程度のものではないのでしょうか? よほど精密な仕事ではない限り、有効数字3桁もあれば上等の場合が殆どなので、多少の食い違いには目をつぶるということも大切なのかも知れませんね。
    • good
    • 0
この回答へのお礼

度々ありがとうございます。

>実害のない程度のものではないのでしょうか?
たしかに実害はない程度のものです。
(困り度も「暇なとき・・・」ですしw)

ただ、小数点以下1位でずれていたので
え?!
と思ったまでです。

例:
辺長A=0.9
辺長B=2.6
辺長C=2.491

~~座標~~
  X   Y
a=2.337 717.861
b=2.600 717.000
c=0.000 717.000

というものですと答えが
ヘロン・・1.2524
座標・・・1.1193
となるのです。(計算間違いしてないと思いますが・・・)

それでどちらが一番最もらしい値なのかなぁと思っていました^^;

お礼日時:2006/06/27 16:52

#2です。



>ご回答がイメージできません。

適当な直角三角形で説明しますと

 A(0,2)
 |\
c| \b
 |  \
 B----C
 (0,0) a (1,0)

・a辺(BC辺)はX軸と水平で長さが1
・c辺(AB辺)はY軸と水平で長さが2
その場合、
b辺(AC辺)は長さが√5で無理数になりますので、各辺の長さから解を求めるヘロンの公式では、途中の計算でズレが生じます。
    • good
    • 0
この回答へのお礼

度々ありがとうございます。

確かに√5では延々と続いていきますもんね^^
そりゃ~ずれますね^^;

おかげでわかりました^^

お礼日時:2006/06/27 16:39

ヘロンの公式を用いて三角形ABCの面積を求めた場合、仮にa辺を下にしてX軸と水平にした場合、b,c辺の値が無理数になる場合がありますよね。


その値とコンピューターの有効数字のズレではないでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

数学のカテに質問しておきながら、数学苦手でして
大変申し訳ないのですが、ご回答がイメージできません。
>b,c辺の値が無理数になる場合がありますよね
↑このくだり;;

申し訳ありませんが、お手すきのときで構いませんので
もう少し砕いた表現にしていただると助かります。

お礼日時:2006/06/27 11:59

 コンピュータでプログラムされているのでしょうか。

アルゴリズムと入力データが同じなら結果は同じ筈です。ヘロンの公式を使うには座標値から三角形の長さを計算しなければなりませんね。そこで間違いが起きているのではないでしょうか?

 誤差の問題だとすればこれはかなり複雑ですね。コンピュ-タで生じるのは桁落ちの誤差ですが、これは計算の過程、データの桁に左右されるので何とも言えません。

例えば4桁しか扱えないコンピュ-タがあったとして

1000-0.1は1000になってしまいますよね? そんな感じです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

私もやっぱりそんな気はしてました^^;<桁落ち

ちなみに私はプログラムしていません^^;
CAD上で面積計ったのと(CADに面積計らせる)、ヘロンで計算したものが違っていたので
検算(でいいのかな?)ができなくて
結局何が正しいのか分からなくなり質問しました。

PCを使う以上避けては通れない道ですかね^^;

お礼日時:2006/06/27 11:55

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【数学】ヘロンの公式のヘロンって人の名前ですよね? ヘロンって何をやった人ですか? あとヘロンの公式

【数学】ヘロンの公式のヘロンって人の名前ですよね?

ヘロンって何をやった人ですか?

あとヘロンの公式ってどんなのを言いますか?

ヘロンの公式を簡単に説明してください。

いつ使うんでしょう?

Aベストアンサー

自分の知ってるヘロン:大昔のギリシャの学者。ヘロンの水車という回転機構を発明したと言われている。
ヘロンの公式:三角形の3辺の長さが分かれば、面積を計算できると言うありがたい公式。ただし、要開平算(ルートの計算)

Q三角形の面積の求め方でヘロンの公式を使わせるのはなぜ?

三角形の面積の求め方でヘロンの公式を使わせるのはなぜですか?

(底辺+高さ)÷2 だとなにか弊害がありますか?

Aベストアンサー

三角形の底辺の長さと高さがわかっていれば、(底辺+高さ)÷2とすればよいです。高さが不明でも、三角形の3辺の長さから直接に面積を出す方法(ヘロンの公式)があるというだけです。ヘロンの公式を知らなくても、2個の直角三角形に分割すれば、3平方の定理で高さを知ることができます。
「使わせるのはなぜ」とか「弊害」の文脈が不明ですが、これで回答になっていますか?

Qヘロンの公式は余弦定理から導かれますか

余弦定理はピタゴラスの定理を使って証明されるものと聞きましたが、ヘロンの公式は余弦定理を使って証明できるものでしょうか。

Aベストアンサー

余興の尻ぬぐいですが…。

>これを (1) か (2) へ代入して、h^2 が (したがって h も) 求まる。
>h がわかるので、△ABC の面積 = ah/2 を勘定可能になった。

たとえば、
 h^2 = c^2 - d^2
を使って h を勘定してしまえば、△ABC の面積は求められるはず。


ヘロン氏は h^2 を「因数分解」してみせた、というわけでしょうネ。
              ↓
 h^2 = c^2 - d^2
   = { (2ac)^2 - (a^2 + c^2 - b^2)^2 }/(2a)^2
   = { 2ac + (a^2 + c^2 - b^2) }{ 2ac - (a^2 + c^2 -b^2) }/(2a)^2
   = { (a + c)^2 - b^2) }{ b^2 - (a - c)^2 }/(2a)^2
   = (a + c + b)(a + c - b)(b + a - c)(b - a + c)/(2a)^2

   

Q空間のヘロンの公式??

三角形の3辺が分かっていれば、ヘロンの公式で面積が求まるように、6辺の長さがa,b,c,d,e,fで与えられただけで四面体の体積(三角錐)を求められるということを知りました。調べたところ、下記のような式で表されるようです。(空間のヘロンの公式?)

 しかし、これを示す方法が分かりません。どうやって証明したら良いのか困っています。もしよろしければ教えていただければ幸いです(長ければ指針などでも有難いですm(_ _)m)

(12Δ)^2=a^2d^2(b^2+c^2+e^2+f^2-a^2-d^2)+b^2e^2(c^2+a^2+f^2+d^2-b^2-e^2)+c^2f^2(a^2+b^2+d^2+e^2-c^2-f^2)-a^2b^2c^2-a^2e^2f^2-d^2b^2f^2-d^2e^2c^2

Aベストアンサー

計算で求める、一番わかりやすい方法は、やはり、ベクトルを使うことだと思います。平行六面体の体積は、よく知られているように、スカラー三重積ですね。
平行六面体の一つの頂点Pから出る3本の稜をベクトルでA,B,Cとしたとき、この平行六面体の体積Vは、
V=A・(B×C)
となります。四面体の体積は図を描いてみればわかるように、V/6 です。このあとは,A,B,Cを六辺の長さa,b,c,d,e,fで表せばよいだけです。


別解として、グラム行列式(グラミアン)を使う方法もありますが、これも、同じことです。

Qヘロンの公式の問題

△ABCにおいてAB=1cm,BC=3cm,CA=xcmであるときxのとりうる値の範囲は
□<x<□である。
また、xの値がこの範囲で変化するとき△ABCの面積の最大値□である問題

範囲の問題
|AB-BC|<CA<AB+BCをなぜ考えるのか?

s=(1/2)(x+4)
ヘロンの公式より
S^2=s(s-1)(s-3)(s-x)をどうやって計算するのか?

Aベストアンサー

>|AB-BC|<CA<AB+BCをなぜ考えるのか?
三角形を形作るための条件です。
線分AB=1, 線分BC=3を
頂点Bの∠Bは自由に変えられるようにして接続しておきます。
頂点Aと頂点Cとなる点を伸びたるまないゴム紐で接続するとします。線分BCを底辺として固定し、頂点Aを∠Bをゼロから180°まで増加させていくとき、ゴムの長さACは∠B=O°で最小(BC-AB=3-1=2cm)となります。最小値は辺の大きい方から小さい方を引くため|AB-BC|と書きますが|AB-BC|=BC-AB>0で計算します。
またゴムの長さACは∠B=180°で最大(AB+BC=3+1=4cm)となりますね。
つまり、AC=BC-AB(最小値)、AC=BC+AB(最大値)となるときは三角形が直線になって三角形が構成できませんので不等号に等号は含まれません。

三角形の面積は
底辺×高さ÷2で計算できます。
底辺をBC=2cmとし頂点Aを∠Bを増加して行くときA点の高さが最大になるのは∠Bが90°のとき三角形ABCの高さ=AB=1cmとなり三角形の面積も最大になります。最大の面積S=3×1÷2=3/2 cm^2 (*)
このとき∠B=90°の直角三角形だから、ピタゴラスの定理から
AC^2=AB^2 + BC^2=1^2 + 3^2=1+9=10
AC=√10 cm (*)
 
一方、ヘロンの公式で三角形ABCの面積Sを書けば
s=(1/2)(1+3+x)=(1/2)(x+4)と3辺の長さ1,3,xを代入すると
>S^2=s(s-1)(s-3)(s-x)
=(1/2)(x+4)(1/2)(x+4-1×2)(1/2)(x+4-3×2)(1/2)(x+4-x×2)
=(1/2)(1/2)(1/2)(1/2)(x+4)(x+2)(x-2)(4-x)
=(x^2 -4)(16-x^2)/16
計算はこうなります?

最大値はx^2=Xとおいて
f(X)=S^2=(X-4)(16-X)/16
の最大となるXから求められます。
f(X)={36-(X-10)^2}/16
上に凸の放物線でX=10(x=√10cm)でf(x)=S^2の最大値=36/16=9/4
となります。このとき
Sの最大値=√(9/4)=3/2 cm^2となりますね。

この結果はヘロンの公式を使わないで導いた(*)の結果と一致します。

>|AB-BC|<CA<AB+BCをなぜ考えるのか?
三角形を形作るための条件です。
線分AB=1, 線分BC=3を
頂点Bの∠Bは自由に変えられるようにして接続しておきます。
頂点Aと頂点Cとなる点を伸びたるまないゴム紐で接続するとします。線分BCを底辺として固定し、頂点Aを∠Bをゼロから180°まで増加させていくとき、ゴムの長さACは∠B=O°で最小(BC-AB=3-1=2cm)となります。最小値は辺の大きい方から小さい方を引くため|AB-BC|と書きますが|AB-BC|=BC-AB>0で計算します。
またゴムの長さACは∠B=180°で最大(AB+BC...続きを読む


人気Q&Aランキング

おすすめ情報