- 締切済み
わかりません
Dady-Jの回答
- Dady-J
- ベストアンサー率47% (9/19)
どの程度の基礎があるかわかりませんが、誤差論の「誤差の伝播」について本で調べてみてください 計算の手順や組み立て方によって誤差を少なく出来ることがわかると思います また、コンピュータは2進数計算ですので、10進数計算をするとコンピュータ特有の誤差が出てきます アルゴリズム関係の本で「多倍長演算」について調べてみてください 整数や実数での任意桁の計算用サブルーチンが載っているはずです ちなみに私の持っている多倍長関係の本は新紀元社の「アルゴリズム選集2 整列・探索・予測・多倍長演算編」安居院 猛監修です
関連するQ&A
- 計算値と理論値の誤差について
交流回路の実験をする前に、ある回路のインピーダンスZ(理論値)を計算で求めたあと、実験をしたあとの測定値を利用して、同じ所のインピーダンスZ(計算値)を求めると理論値と計算値の間で誤差が生じました。 そこでふと思ったのですが、なぜ理論値と計算値の間で誤差が生じるのでしょうか?また、その誤差を無くすことはできるのでしょうか? できるのなら、その方法を教えてください。 あと、その誤差が原因で何か困る事はあるのでしょうか? 教えてください。
- ベストアンサー
- 科学
- 計算の丸め誤差の解消について
プログラム上で計算するときに丸め誤差が発生し、困っています。 丸め誤差が発生している計算は -0.004+0.006+0.002 なのですが、 -0.004+0.006+0.002=0 となるところが、 =8.47E-09 となってしまっています。 オーダーの異なる計算ではないにもかかわらず、どうして誤差が発生するのかが理解できず困っています。 上の数値(左辺の方)の算出は、10^(-1)のオーダーの数値から計算されています。 多分、浮動小数点を使っているからだろうと考えているのですが、どのように解消したらよろしいでしょうか? 固定小数点を用いると、浮動小数点より誤差が少ないとありましたが、Cで固定小数点を用いる方法もわからないです。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 実験値につける誤差の計算方法
実験で得た数値の誤差の計算方法に悩んでいます。 実験値xとyがあったときに、それぞれの誤差が x±dx、y±dyとかではなくて xに対しては x+dx1, x-dx2 yに対しては y+dy1, y-dy2 というふうにプラスの場合とマイナスの場合で 異なる大きさの誤差を持っていたときに xとyの比、x/yにつけるべき誤差の計算方法がわかりません。 例えば、高さ6 mという値に対する誤差がプラス方向には3 m、 マイナス方向には1 m で、幅4 mに対する誤差がプラス方向には 2 m、マイナス方向には0.2 mのときに、[高さ]/[幅]の比を 計算したいのですが、これにつくプラス・マイナスの誤差を どうやって計算すればよいのでしょうか。。 x±dx、y±dyのときは x/y に √((dx/x)^2 + (dy/y)^2) とすればよいのは知っているのですが・・・ どなたか教えていただけますでしょうか。 簡単な微分計算なら理解できますが、もともと文系なので できるだけやさしく解説していただけたらありがたいです。 よろしくおねがいします。
- 締切済み
- 物理学
- エクセル ROUNDDOWN関数の誤差
給与の計算をエクセルで行っているのですが、誤差が出て困っています。 A1に出勤時間(17:00)、B1に退勤時間(18:00)、C1に勤務時間を計算するため(B1-A1)*24、D1に時給(100)、E1にROUNDDOWN(C1*D1,0)で答えが99になってしまいます。 色々他の値でも試してみたのですが、全ての時給、勤務時間で誤差が出る訳ではなく、時給が600円や700円の場合に誤差が出たり、勤務が15時から16時でも誤差が出たりします。どのような法則で誤差が出るのか全くわからず、修正方法もわかりません。 どなたか良い解決方法がお分かりでしたら教えていただけませんでしょうか? そもそもこのような場合に上記のような計算式を使用するのが間違いであればそれもご指摘ください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 物理学科の大学生です。多変数関数の誤差を計算したい
物理学の実験で得られたデータをもとに誤差を計算したいのですが、扱う式が多変数関数であるため、誤差を計算するのに手計算では大変すぎます。多変数関数の誤差計算をしてくれる、ソフトをどなたかご存じないでしょうか。
- 締切済み
- その他(学問・教育)
- 丸め誤差への対処法についての疑問
丸め誤差についてですが、 浮動小数点数の内部表現は2進数である為、循環小数となる「0.1」等を含んだ計算結果は誤差が 生じる事が多く、その対策として「整数にしてから計算し、その後割り戻す」 というのをよく目にします。 例えば、javascriptで行う下記のような計算です。 (1)0.1×6=0.6000・・・01 ※誤差が出る (2)0.1×10×6=6 ※整数にしてから計算 (3)(0.1×10×6)/10=0.6 ※割り戻す この時、(2)の「0.1×10」の箇所で誤差が生じないのは何故でしょうか? 「0.1」という数字自体が2進数に変換した時既に誤差が生じているのであれば、 誤差が生じている数字に10を掛けてもやはり誤差が残ってしまう気がするのですが。 また、(3)の割り戻し処理では結果が少数となりますが、この時に誤差が生じる事はないのでしょうか?
- ベストアンサー
- JavaScript