• ベストアンサー

x>1のとき、exp(x)または10^xの近似値を電卓だけで求めたい。

x>1のとき、exp(x)または10^xの近似値を電卓だけで求めたい。 x≒0のとき、sinx゜≒180x/π みたいな近似式が指数関数でもできないかと思っています。 有効数字2桁くらいのもので結構ですので メモ用紙(ハガキ大程度)と電卓(もちろん関数電卓は×)くらいで求められないでしょうか? テイラー展開式exp(x)=1+x+(x^2)/2!+(x^3)/3!+… は一応知っております。 (x>1なので困っているんですが…)

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

  • ベストアンサー
  • info22_
  • ベストアンサー率67% (2650/3922)
回答No.4

A#3の補足質問に関連した近似式の導出の考え方について exp(x)をマクローリン展開すると exp(x)=1+x+x^2/2+x^3/6+x^4/24+... これはxの収束範囲は全ての実数範囲であるが、x>1で収束が非常に悪く近似計算に向かない。 そこで exp(x)=(exp(x/n))^nとしてexp(x/n)のマクローリン展開を考えると exp(x/n)=1+x/n+(x/n)^2/2+(x/n)^3/6+(x/n)^4/24+... となって、|x/n|<1つまり1<|x|<n の範囲で収束が改善される。nは大きいほど収束の良い範囲が拡大する。従ってexp(x)の近似式として 整数nを n>>1とすれば exp(x)=(exp(x/n))^n≒{1+x/n+(x/n)^2/2}^n≒(1+x/n)^n 電卓での計算のしやすさを考慮してn=2^8=256,2^10=1024などが良いだろう。 exp(x)≒(1+x/256)^256=((((((((1+x/256)^2)^2)^2)^2)^2)^2)^2)^2, ≒(1+x/1024)^1024=((((((((((1+x/1024)^2)^2)^2)^2)^2)^2)^2)^2)^2)^2, など もう少し近似精度を上げるために、このexp(x)のマクローリン展開に近い展開の関数で収束のよい関数を利用することを考える (2+x)/(2-x)=1+x+x^2/2+x^3/4+x^4/8+... x^2の項までは一致する。収束範囲は|x|<2、 収束範囲を拡大する為に x/nで展開することを考える。 exp(x)≒(2+x)/(2-x)≒((2+x/n)/(2-x/n))^n=((2n+x)/(2n-x))^n |x|<<2nで収束がよく|x|>1でも収束する。 n=2^8=256とすれば exp(x)≒((512+x)/(512-x))^256 (収束範囲|x|<512) もっと収束範囲を拡大(精度も上がる)したければ exp(x)≒((1024+x)/(1024-x))^512 (収束範囲|x|<1024) 次に 10^x=exp(xlog(10))=exp((xlog(10)/n)*n) ≒((2+xlog(10)/n)/(2-xlog(10)/n))^n=((2n/log(10)+x)/(2n/log(10)-x))^n 収束範囲:|x|<2n/log(10) n=256とすれば 10^x≒((222.3587747344649+x)/(222.3587747344649-x))^256 ≒((222.359+x)/(222.359-x))^256 (収束範囲 |x|<222.359) 計算は ({{{{{{{{(222.359+x)/(222.359-x))^2)^2)^2)^2)^2)^2)^2)^2 (8回2乗を繰り返す)で行えば良いでしょう。

sak_sak
質問者

お礼

丁寧な説明をしていただき、よく理解できました。 このような近似法があるのですね。 基本がマクローリン展開であるのも驚きです。 ありがとうございました。 質問文に書いたような (精度が低くとも)もう少し手軽にできそうな やり方があったら、それも知りたいので 締め切りはもう少し先にしたいと思います。

その他の回答 (3)

回答No.3

気賀康夫著「電卓に強くなる (副題)すぐに役立つ公式と実例」ブルーバックス B-327 を見ると、 e^x(eのx乗)の近似計算式にこんなのがあります。 e^x ≒ ( (x+512) / (x-512) )^256 また10^xの近似式は、 10^x ≒ ( (x+222.36) / (x-222.36) )^256 共に(○)^256 はカッコ内の○を求めてそれ同士を掛けて二乗し、その答えを元に、という作業を8回繰り返します。  注:256 = 2^8なので。 e^x ,10^x の近似式共xの値が10位までなら3桁以上の有効数字が得られるようです。

sak_sak
質問者

補足

回答ありがとうございます。 「こんなやり方があるなんて」と驚いています。 この式の求め方は本に書いてありますか?

回答No.2

xが1よりどれくらい大きいか、にも依るんですが、xを超えない最大の整数をnとして、 例えば、x=n(1+h)のようにしましょう。hがゼロに近いことと、nが整数というのがポイントです。 ○ 電卓でx÷n-1を計算して h をメモしておきます。(メモリ機能があれば、メモリに入れます) それから、反則かも知れませんが、eの近似値2.71828程度を知っていることとして、使います。 ○ 次に、exp(n)を電卓で計算します。大抵の電卓なら、 2.71828×= で2乗が計算できます。この後、必要に応じて=を(n-1)回押せば exp(n)が求められるので、これをメモ用紙に転記します。 ○ そして、メインの計算は、メモリ機能がないと少し苦しいですが、以下のようにします。これは、テーラー展開の一部を利用します。精度の必要性に応じて計算回数を加減して下さい。 RMはメモリ読みだしのボタンを押す、という意味で読んで下さい。 メモリ機能が無い場合は、最初に計算した h を入力します。 また、括弧は数式の表現上記したもので、電卓入力では必要ないですね。 ((((RM÷5+1)×RM÷4+1)×RM÷3+1)×RM÷2+1)×RM+1= 精度が低くても良ければ、最初をRM÷4とか、RM÷3から始めればよいですし、 高い精度が必要なら、最初をRM÷6とか、RM÷7のように増やして始めればよいです。 でも、電卓は計算精度が余り高くないので、増やしても大して改善されません。 ○ 最後に、2番目の計算で求めた exp(n)を掛けて完成です。 x=1.1 なら、h=0.1 で、exp(1.1)=3.004166 に対して 3.0041639 が得られます。  RM÷3 から始めると、3.0041522 RM÷4 から始めると、3.0041636 RM÷6 から始めると、3.0041639 電卓の計算精度の限界でしょうか。

sak_sak
質問者

補足

回答ありがとうございます。 x=n(1+h)だと、exp(x)={exp(n)}^(1+h)になってしまうと思うのですが… 仰る方法ですと、h=x-nではないでしょうか? さっそくEXCELで精度を試してみました。 1次(つまり(1+h)×exp(n)で)でも有効数字1桁強は出るようです。 (これならRMを使わずに済みますし) nの値は切り捨てではなく五捨六入くらいにした方が更に良さそうです。 こうなるとh=0.5~0.6付近で1割程度の誤差が出てしまいます。 電卓の「√(ルート)」を使えば解決できそうです。 大変に良いアイデア大変ありがとうございました。 まだ良い案があったら知りたいので 他の回答もお待ちしたいと思います。

  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.1

指数関数は引数が大きくなると値が急速に大きくなるため引数の範囲を指定しないとダメでしょう。たとえばX>1とはいえx=1+d, 0<d<1のような。 この時はexp(1+x)をx=1の周りでテーラー展開すればよろしい。 最近はプログラマブル電卓なんてのははやらなくなって、売っていませんが、 これだと少し楽しめるでしょう。

関連するQ&A

  • 積分正弦関数の近似

    ∫(sinx/x)dx の不定積分は ∫(sinx/x)dx = x -x^3/18 + x^5/600 - … (1) とするとxの小さい所でしか使えません。テイラー展開より広範囲で使える近似としてはPade近似があります。[3/3]型のPade近似を求めてみると  Si(x) ≒ (900x - 23x^3)/(900 + 27x^2) となりましたが、これもxの大きい所でそれほど良くはないようです(Pade近似は特異点のある関数の方が適しているのかもしれません)。しかしxの大きい所では ∫(sinx/x)dx = π/2 - cosx/x -sinx/x^2 + 2cosx/x^3 … (2) という展開があるので(1)と(2)を補間できるような近似があれば最も良いと思います。Pade近似か連分数展開のようなものでこの二つを補間できるような式はできないでしょうか。

  • 関数電卓でexpの使い方

    エクセルで近似曲線を作りましたら、y=40.644e-0.0001xの式が得られました。文字として書くことが難しいですが、eのマイナス0.0001x乗の意味です。 xの値がわかっている場合に、yの値を計算したいです。 これをシャープ関数電卓(EL509F)で計算する場合は、expを使うようですが、キーの押し方がわかりません 。 お教えください。

  • テイラー近似式について

    テイラー近似式について教えてください。 f(x)=1/1+x のテイラー近似式がわかりません。参考書などで調べてみたんですがテイラー近似式という言葉すら乗っていませんでした テイラー展開はのっていたんですが、テイラー展開とテイラー近似式は同じものなんでしょうか? 途中式もお願いします!

  • n次近似式とテイラー展開について

    学校で近似式の勉強をしていて、テイラー展開という所まで進みました。 そこでn次近似式との関係について良くわからない事がありましたので質問します。 文章がわかりにくいと思いますがお願いします。 n次近似式は、n番目までの近似でn番目の後にランダウの記号がついています。 テイラー展開はn番目の近似の後にさらに・・・と続いています。 この二つにはどのような違いがあるのでしょうか? あとマクローリン展開はa=0の時のテイラー展開という事はわかりました。 そこで、 f(x)=exp(x)のx=0におけるn次近似式を求めよ。と書いてあった時は、n次近似式とテイラー展開が同じ事を言っているとしたら、マクローリン展開で解いても良いのでしょうか?

  • ローラン展開の一意性について

    ローラン展開の問題を解いていたら z exp(1/x) (0<|z|<∞) という問題が合ったのでexp(1/x)をテイラー展開しようと奮闘していたのですが、力尽きて調べてみると「それは解けません。exp(x)のテイラー展開に1/xを代入します」とありました。 これってどんな場合にも成り立つのでしょうか。 例えば指数関数だけでなく、cos(1/x)とかsin(x^2)なんて問題が出たときにもよく知られるeやcosやsinのテイラー展開の結果の式に代入したらそれで解決なのでしょうか。 もし、どんな場合にも成り立たないのであれば、成り立つための条件を教えて頂けるとうれしいです。 よろしくお願いします。

  • tanh(x)がx>>1のときの近似式

    tanh(x)がx>>1のときの近似式 tanh(x)がx>>1のとき以下の近似式が成り立つそうなのですが、 どうしてこういう近似式が成り立つのかわかりません。 どなたか教えていただけると助かります。 tanh(x)≒1-2*exp(-2x)

  • テーラー展開について

    テーラー展開を用いて指数関数を多項式にしたいのですが、 f(x) = EXP(x) = 1 + 1 / 1! * x + 1 / 2! * x^2 + … というのは理解しているのですが f(x,y) = EXP(x + y)といった2変数の場合のテーラー展開やり方がわかりません。 一体どうのようにすればいいのでしょうか?

  • log(x-1)の漸化式

    log(x-1)の漸化式 テーラー展開して漸化式を作る式がありますよね? 例えば、e^xだとテーラー展開して・・・ y=1+x/+1!+x^2/2!・・・x^n/n! これを利用して a(n)=x/k*a(n-1) となって漸化式が出ます。同様にsinxも考えると y=x - x^3/3! + x^5/5! - x^7/7! + ・・・(-1)^n-1*x^2n-1/2n-1 これを利用して a(n)=x^2/2k-1*a(n-1) となります。(ここまで間違っている部分もあったら、教えてください。) ですが…log(x-1)はどうやってテーラー展開を考えればいいのか分かりません。 この3つはこの後プログラムでテーラー展開の近似の計算に使うのですが・・・ log(x-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