二分法
方程式 $f(x) = 0$ の解を求める方法として代表的なものに、二分法とニュートン法があります。二分法は、関数 $y=f(x)$が区間 $[a,b]$ で連続で、解が1つ存在するときに使えます。
二分法による解法は、以下の通りです。
- 区間 $[a,b]$ を2つに分け、その中点をcとする。
- $f(a)\cdot f(c)$ が負であれば、区間 $[a,c]$ の中に $x$ 軸との交点があるはず。
- $f(a)\cdot f(c)$ が正であれば、区間 $[c,b]$の中に $x$ 軸との交点があるはず。
というのを繰り返します。
課題48:二分法
方程式 $e^x - 3 x = 0$ を、区間 [0, 1] に対する二分法を用いて解いてください。ただし、誤差 $\epsilon < 0.00001$ とします。また、numpy
, scipy
, sympy
などを使うと便利ですが、この課題は二分法の理解とPythonでの実装の練習を兼ねているため、これらのライブラリを用いないこと。
# アウトプット例
0.6190605163574219
-
誤差 $\epsilon$ の値を変化させた場合にこのアルゴリズムの挙動がどう変化するか答えてください。
-
同様に方程式 $tanh X + X + 2 = 0$ の解を二分法で求めてください。
課題提出方法
-
基本的にGoogle Colaboratoryを用いてプログラミングしてください。どうしても Google Colaboratory を用いることができない場合のみ、Jupyter Notebook または Jupyter Lab を用いてください。
-
課題1つごとに、ノートブックを新規作成してください。1つのノートブックで複数の課題を解かないでください。
-
ノートブックを新規作成すると「Untitled.ipynb」のような名前になりますが、それを「学籍番号・氏名・課題番号」のような名前に変更してください。
-
質問・感想・要望などございましたらぜひ書き込んでください。
-
もし課題を解くにあたって参考になったウェブサイトがあれば、それについても触れてください。
-
課題を計算し終わった ipynb ファイルを提出するときは、指定したメールアドレスに Google Drive で共有する形で授業担当者に提出してください。