• ベストアンサー

x=tan(x)この方程式を解く方法を教えてください。

この方程式を解く(あるいはニュートン法を使って近似計算する)方法を教えてください。 解は x=4.493rad であることを教えていただいています。

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

  • ベストアンサー
noname#221368
noname#221368
回答No.4

 この方程式を解く方法・・・、やはり解けない事に納得できませんか。自分も昔そうでした。x=tan(x)が解けない事は、恐らく証明されています。ただし「解くとは何か?」「計算とは何か?」「計算可能とは何か?」という難し過ぎる話になって、ふつうは専門書にすら載っていません。何が解けるかは、人から聞くか、本で調べるか(解けないとだけ書いてある本)、という事になります。 [1]ニュートン法(図-1)  黒ラインは、y=x-tan(x)を表し、図-1では、1.47πから出発しています。x=1.47πで接線を求め、接線とx軸の交点(x1,0)を求め、x1で再び接線を求め、その接線とx軸の交点(x2,0)を計算して・・・、と進んで行きます。すると赤矢印の経路になります。微分計算と交点計算が面倒臭いですが、頑張ればExcelでもやれます。 [2]修正ニュートン・ラプソン法(図-2)  初回だけ接線を求め、後はその接線と同じ傾きを持つ直線で、ニュートン法を簡易化したものです。もちろんExcelで出来ます。収束はニュートン法より遅いので、作成する表は前者より長くなりますが、数式さえ一度作れば、後はコピーだけです。 [3]縮小写像法(図-3) この前ご紹介した方法、または#3さんと同じ方法です。この前とひっくり返ったような図になっていますが、意味はわかると思います。黒ラインがy=tan(x),青ラインがy=xです。 [4]2分法(表-1) y=x-tan(x)に2分法を適用したのが、表-1です。図-1を参照して表-1では、初期区間として(1行目)、x0=1.42π,x1=1.44πを選んでいます。x2=(x0+x1)/2です。y0,y1,y2は、x0,x1,x2に対する、y=x-tan(x)の値です。2行目のx0,x1は、次のように選びます。   y0とy2の値が同符号だったら、2行目のx0として、1行目のx2を選ぶ。そうでなければ、1行目のx0を選ぶ。   y2とy1の値が同符号だったら、2行目のx1として、1行目のx2を選ぶ。そうでなければ、1行目のx1を選ぶ。   x2=(x0+x1)/2は、2行目も同じです。  以下同じです。なお符号は、=SIGN(セル)の数式で取れます。=IF(条件,セル,セル)も使える事が前提です。  2分法では初期区間から出発して、常に両端の関数値が異符号の区間を選びます。両端の関数値が異符号なら、その中に関数値0の点(つまり解)があるからです。しかも1回の選択で区間幅は半分になって行くので、いつかは1点になり、それが解だ、という話です。[1]~[4]の中で一番収束は遅いかもしれませんが、いずれにしろコピーの世界ですし、理屈がものすごく単純なので私は大好きです。  図より、[1]~[3]は、結局みな一緒だと思えませんか?。赤矢印を交点へ向かわせる工夫をしてるだけです。そして[1]~[4]には、共通の前提があります。   (1)初期値を選ぶ必要がある。   (2)考えている範囲で、解は1個だ。  だからグラフを書きます。  もう、β(3-5cosβ)+2sinβ=0も大丈夫ですよね?。

その他の回答 (3)

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

・筆算は無理。 ・答えは無限個。 スプレッドシートを使い、πと (3/2)πとの間にある解 a に収束させる手を…。  πと (3/2)πとの間の値を初期値 x0 とする。  atan(x0) + π = x1 とする。  atan(x1) + π = x2 とする。  … これを繰り返してみたら、十数回で不動点 a に収束しました。   

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.2

#1です。 ミスの訂正です。 誤:f'(x)=1/(cos(x))^2 正:f'(x)={1/(cos(x))^2} -1 = {tan(x)}^2 ニュートン・ラプソン法を EXCEL で出来ることをA#1で紹介しましたが ■ ExcelによるNewton法の別のサイトが見つかりましたので紹介しておきます。 http://www.ie.reitaku-u.ac.jp/~ykago/lectures/fe_basic/fe_basic03.html Newton法はある°リズムが簡単なので、Excel以外にもプログラム可能なソフトで簡単にプログラミングできます(Fortranやその他の言語)。 Newton法計算サイト http://keisan.casio.jp/has10/SpecExec.cgi (使い方) f(x):tan(x)-x f'(x):(tan(x))^2 x0:4.5 or 7.7 or 1.1 など n:50(打切り上限繰り返し回数) [計算]ボタンクリック xが収束していく様子が表示されます。 x0=4.5で繰り返し回数5で4.493409457909064175308(精度1.6x10^(-21)) 数式処理ソフトなどでもNewton法の数値計算が出来ます。 例えばフリーソフトのMaxima(インターネットからダウンロード可能な無料ソフト)でもNewton法のツールコマンドが用意されています。 計算してみると(以下でb0=x10^0=x1, b1=x10^1=x10を意味する) (プログラム) fpprec:20$ load(newton1)$ newton(tan(x)-x,x,4.5,1.0E-10)$bfloat(%); (計算結果) 0.0b0 4.4934094579092471733b0 7.7252518369384635122b0 1.0904121659430522584b1 1.4066193912831474577b1 1.7220755271930769936b1 2.0371302959287561407b1 2.3519452498689627618b1 2.6666054258813037592b1 2.9811598790892958277b1 3.2956389039822937548b1 ...

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.1

エクセルを使ってニュートン法で近似計算する方法は次のURLにありますので そこを参考にしてやってみてください。 http://homepage1.nifty.com/gfk/excel_newton.htm f(x)=tan(x)-x f'(x)=1/(cos(x))^2 初期値を x[0]=4.5 (4.4~4.6位の値をグラフからおおよそで読み取る) とすると良いでしょう。 奇関数ですから、正の解があればそれをマイナスにしたものも解になります。 初期値をx[0]=0, 4.5, 7.7, 10.9, 14.1, 17.2, 20.4 と変えてやってみてください。大まかなこれらの初期値はグラフを描いて よみとったおおよその近似値です。

参考URL:
http://homepage1.nifty.com/gfk/excel_newton.htm

関連するQ&A

専門家に質問してみよう