{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 二分法による方程式の近似解を求める\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 概要\n", "\n", "二分法によって、区間$[a,b]$における関数$f$の根の近似計算法を検討します。\n", "\n", "## 1. 二分法のアィディア\n", "\n", "関数$f=x^3-2$を例にして、区間$[0,3]$の中で$f(x)=0$の解の計算方法を説明します。\n", "\n", "準備として、関数fを定義します。 MATLABでは、以下の文法で関数を定義します。\n", "\n", "```\n", "function 戻り値の変数 = 関数名(入力変数)\n", " %関数の中では、関数値を計算して、その値を「戻り値の変数」にします。\n", "end\n", "```\n", "\n", "以下の関数の例では、xが入力変数、valueが戻り値の変数(出力変数)です。\n", "\n", "```\n", "function value = f(x)\n", " value = x.^3 -2\n", "end\n", "\n", "```\n", "
\n", " 補足: 「x.^3」の中の「.」演算子の役割\n", "\n", " xが配列であるとき、「x.^3」はxの各成分の3乗を計算して、計算結果を配列として返します。ここで、「.」という演算子によって、配列の成分毎の計算ができます。\n", "" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "%関数fの定義\n", "function value = f(x)\n", " value = x.^3 -2;\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "以下、$y=f(x)$のグラフを描いてみます。\n", "\n", "
\n", " 補足: 「hold on」の役割\n", " \n", " 二つのグラフを一つの軸に描くために、「hold on」という命令を使用します。以下の例では、y=0とy=f(x)を描いています。\n", "" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "p = 1.5000\n" ] }, { "data": { "image/svg+xml": [ "" ], "text/plain": [ "