一松信先生の「初等関数の数値計算」について

このQ&Aのポイント
  • 一松信先生の著書「初等関数の数値計算」について紹介します。
  • 本書の6.3.3項には特別な配慮が必要な近似値の計算方法について述べられています。
  • 桁落ちが発生する可能性も考慮しながら、級数の計算が行えます。
回答を見る
  • ベストアンサー

一松信先生の「初等関数の数値計算」について

下記のサイトに、一松信「初等関数の数値計算」(教育出版)先生の著書がります。 項6.3.3の問題の前に、下記の記述があります。 その中で『この部分の近似値を計算する際には特別の配慮をする必要がある』と有りますが、 桁落を含めて、私には残念ながら意味が解かりませんの、説明をお願いできないでしょうか。 尚、級数の計算はWindowsのjavaで行うことが出来ました。 ======================================== 但しこれでも不十分な部分がある。図6.3 はsin x の値(実線) と,Maclaurin 展開式(6.6) を用い た近似値の相対誤差(破線) をプロットしたものであるが,ちょうどsin x ≈ 0 となる部分で,相対 誤差が著しく増大しているのが分かる。これは展開式の計算で桁落ちが発生していることを示して いる。従って,この部分の近似値を計算する際には特別の配慮をする必要がある。 ======================================== http://na-inet.jp/nasoft/chap06.pdf 以上

質問者が選んだベストアンサー

  • ベストアンサー
  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.1

x がπに近いケースでは、  sin(x) = x - x^3/3! ± …  (6.6) の右辺各項はどんどん増大していくけど、結果は零に近い、という勘定になりますね。 つまり、「展開式の計算で桁落ちが発生している」。 「アルゴリズム 4」の (b) が、その「桁落ち」を回避する「特別の配慮」でしょう。 x ≒πのかわりに x ≒ 0 を使って勘定するわけですから。 >但しこれでも不十分な部分がある。 … という注記があるけど、「アルゴリズム 4」がそれを回避する一策とみられ、チョイとチグハグ。 java 計算の結果で検証できませんか?   

bakabon_X
質問者

補足

178-tall さま 回答有難うございます。 桁落ちと言う日本語の意味が、理解できません。 正しい値が、1.2345678であるとすれば、桁落ちの値は、とうなるのでしょうか? >java 計算の結果で検証できませんか? <---桁落ちの意味さえ解かれば、テストしてみたいと思います。 以上

その他の回答 (3)

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.4

算のときの「桁落ち」が目立ちます。   ↓ 脱字付加 減算のときの「桁落ち」が目立ちます。   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.3

>… 桁落ちと言う日本語の意味が、理解できません。 有限桁数の四則勘定にて、いわゆる「有効桁数」が減ってしまう現象です。 算のときの「桁落ち」が目立ちます。 一例。 有効 5 桁の勘定で、  1.2345 - 1.2334 = 0.0011 なる減算を実行すると、有効 2 桁しか残らない。   

bakabon_X
質問者

補足

178-tall さま >一例。 有効 5 桁の勘定で、  1.2345 - 1.2334 = 0.0011 なる減算を実行すると、有効 2 桁しか残らない。 <---丁寧な説明有難うございます。 お陰で、やっと理解できました。   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.2

< ANo.1 への追記。 x ≒πでの相対誤差 (図 6.3) の大部分は、x' = π- x で生じる「桁落ち」に起因するものらしい、ですネ。   

bakabon_X
質問者

補足

178-tall さま >x ≒πでの相対誤差 (図 6.3) の大部分は、x' = π- x で生じる「桁落ち」に起因するものらしい、ですネ。 <--x ≒0での相対誤差 (図 6.3)の相対誤差もx ≒πの相対誤差も同程度 と思われます。 しかし、両者の相対誤差に差があると考えるべきでしょうか? つまり、x ≒0の場合は、引き算が存在しないので。 以上 追伸: 一松信先生の「初等関数の数値計算:第6章」の問題の級数展開の項目数と 計算精度に関する問題がありました。後日、投稿しますので、もしご返事頂けますと光栄です。

関連するQ&A

  • 数値計算上での対数計算について

    大学で卒研課題としてMATLABというソフトを使った電磁波の数値計算を行っています。 いま問題となっているのは、解析値X(生データ)を[dB]にするため、log_10(X)をとるのですが、この際Xの値が1.0に極めて近いとき(例えば:X=0.9997)のときの誤差が、ほかのときの値の誤差にくらべ、3桁程度大きくなってしまいます。 数値計算において対数計算がマクローリン展開を用いていることまではわかったのですが、誤差の原因についてはまったく見当がつきません。 どなたか、参考になりそうな文献、サイト等をご存知でしたら教えてください。 宜しくお願いします。

  • マクローリン展開の問題です!!

    sin(0.1)の近似値を関数sin(x)のマクローリン展開のx^5の項までを計算して求めよ。また誤差|R6|を評価せよ。 お願いします。

  • sinxの数値計算

    sinxの数値計算 任意のxに対するsinxの値をマクローリン展開を利用して近似し、誤差の限界(n番目の値が1*10^-8)になるまでもとめよ。 という問題なんですが、for文でいろいろやってみたのですが、n番目の値が1*10^-8までというのがどうしてもできません。 C言語です。 ヒントだけでもいいので教えてください。 明後日の試験にこれの類題が出るようなので、よろしくお願いします。

  • 三角関数の方程式、解ける?解けない?

    sin(2x-1)+sin(3x+4)=0 ⇔ 2sin(3x-2)cos(x-1)=0 ⇔ 3x-2=nπ または x-1=π/2 + nπ と解けますが、 sin(2x-1)+sin(3x+4)+sin(5x+6)=0 や sin(2x-1)+√2sin(3x+4)=0 などは(近似値でなく初等関数を用いて)解けるのでしょうか?

  • 微分積分のマクローリン展開でお願いします。

    マクローリン展開を用いて、任意の角θにおける sinθ,cosθ,tanθの近似値を計算するための θの多項式を求めなさい。 但し、展開式はいづれもθの5次までの項の和の形として求め、 θの昇べき順に整理して表しなさい。 さらに、θ=π/4の場合について、 求めた多項式による三角関数の近似値と正確な値を比較して誤差を求め、 その誤差の真の値に対する比率(%)を求めて、 近似式の制度を検討しなさい。 その誤差の真の値に対する比率(%)を求める所が、 良く解らないのですが、 全体を通して解りやすくお願いします。

  • 近似値の計算方法について。

    こんにちは、 次の問題を解いていました。 電卓で計算すると0.99.....となるのですが、以下の方法ですると1となってしまいます。 この方法では、間違っているのかどうか分かりません。(間違って理解しているのかも) チェックをお願いします。 なお、小数点以下桁数は、2桁までです。 そのほかの方法では、確かに0.99になりました。 sin(x)≒x (1+a)^n≒1+an           x=0.1radのとき、 __________1__________ の近似値を求める。 √{1+2[sin(x)]^2} (方法)関数は、微小区間では、接線の一次式で近似できるので    X=Oのときの値を求め、さらにそのときの接線の傾きを求めXに0.1を代入して結果を    X=0のときの値に加えて近似値を求める。 (計算)    (上式をf(X)とする。) f(0)=1    接線の傾き=f'(0)=0 ∴f(0.1)=f(0)+接線のdf(x)=1+0=1

  • sin(x) は電卓ではどのように計算される?

     sin(x) は PC や電卓ではどのように計算されているのでしょう。テイラー展開かなと思ったのですが、x = 0 における sin(x) の n = 5 までのテイラー展開(マクローリン展開)は   x - x^3/3! + x^5/5! = x - x^3/6 + x^5/120 となり、グラフを描くと -π/2<x<π/2 の範囲では十分使えそうですが x = ±πに近いところでは誤差が大きくなります。   π/2 ≒ 3.141592654/2 ≒ 1.5708   1.5708 - 1.5708^3/6 + 1.5708^5/120 = 1.00452492887866   3.1416 - 3.1416^3/6 + 3.1416^5/120 = 0.524044823764988

  • 統計学についての質問

    「確率変数Xが2項分布(12、2)に従うときP(X=k)、  (k=0~12)の値の一つ一つを正規近似して相対誤差を求めよ。ただし真の値に対する誤差の絶対値の%を相対誤差とする。」 という問題で、自分はkが0~12までは2項分布、kが-0.5~0.5、0.5~1.5、という感じでやっていくのは正規近似、というやり方でやっていますが(n=12, p=1/2) 、二項分布で求める値が真の値、正規分布で求める値が近似値であるとすると、 k=0のときを考えた場合、 真の値がおよそ0.00024414062、近似値が0.00062となってしまい、誤差はこの差の絶対値を取るものなので、計算すると0.00037585938となり、 相対誤差は0.00037585938÷0.00024414062=およそ1.539522となってしまいます。計算ミスではなく、やり方が間違っているのだと思いますが、どこがどのように間違っているのか、どなたか教えて頂けたらと思います。よろしくお願いします。

  • 1次近似式の解き方の途中計算~答えについて

    テイラーの定理より1近似を求めていますが、解き方が分からない問題が6問あったので途中計算~答えについて教えてください。お宜しくお願いします。 (1)f (x) = sin (x)  x = π/3における 1次近似式? (2)f (x) = √x^(1/3)  x = 1 おける 1次近似式? (3)f (x) = ( 1 + x)^4 x = 0における 1次近似式と 1.03^4 の近似値? (4)f (x) = √( 1 + x ) x = 0における 1次近似式と √0.9 の近似値? (5)f (x) = tan (x) x = 0における 1次近似式と tan0.3 の近似値? (6)f (x) = log ( 1 + x ) x = 0における 1次近似式と log1.2 の近似値? 答え (1)1/2x + √3+/2 - π/6 (2) (x /3 )+ (2/3) (3)1 + 4x 近似値(1.12)  (4)1 + (x/2) 近似値(0.95) (5)x 近似値(0.3) (6)x 近似値(0.2)

  • 三角関数の計算がおかしい

    詳しく書くと長くなりますので要約します。 図がなくて申し訳ないのですが、斜辺→1000、高さ→3,15、底辺→?として三角形を描きます。 三平方の定理を展開して、?&sup2;=1000&sup2;-3,15&sup2; 即ち 底辺?=999,9950387であるということは関数電卓で一瞬で計算することができます。 ただ、一旦角度を求めて逆算するとなんかおかしい数字になります。 まず最初に解ってる斜辺1000、高さ3,15はsinなのでsinで角度を求めると、 0,1804820039°になります。 0,18°としてtanで底辺?を求めると  ?=3,15÷tan0,18 ?=1002,672843 と、ミリ単位で誤差が出て、100分台の精度でワークを削る機械加工において致命的なミスが出ます。 ただ小数点以下10桁、0,1804820039°として底辺?を求めると  ?=3,15÷tan0,1804820039 ?=999,9950387 となり、三平方の定理を展開して計算した数値と同じ答えが出ます。 なぜこのようなことになるんでしょう?角度は小数点以下3桁まででいいや、と勝手に決めて計算したらダメですか? 関数電卓で小数点以下10桁まで入力しないといけない理由を教えて下さいませんか?1000万分の何°という数字が必要なんでしょうか? 皆さん回答ありがとうございます。多くの方から回答を頂き感謝しています。 しかし、すぐに理屈を理解できません。自分の無知を恥じながら時間がかかったとしても理解しようと思います。 現時点での認識ですが ?最終的に角度を求めるだけなら小数点以下3桁もあれば充分。 ?しかし、求めた角度を使って底辺の長さを求めるなど、更に計算を続けるなら、小数点以下3桁ではダメ。できる限り正確に角度を入力する必要がある。 という認識で宜しいでしょうか?