割线法
割线法求解方程\[f(x)=0\]的根需要两个接近真实根\[x^*\]的初值$x_0$和$x_1$,于是得到函数$f(x)$上两个点$(x_0,y_0=f(x_0))$和$(x_1,y_1=f(x_1))$,连接这两点得到一条直线(割线):
\begin{equation*}
y-y_1=\frac{y_1-y_0}{x_1-x_0}(x-x_1)
\end{equation*}
由于我们要求解$f(x)=0$,因此设$y=0$,由上式解出$x$,作为下次迭代的初值。这个过程一直进行下去,有如下迭代关系:
\begin{equation}
x_{i+1}=x_i-\frac{x_i-x_{i-1}}{y_i-y_{i-1}}y_i
\tag{6.1}\label{6.1}
\end{equation}
其中$y_i=f(x_i)$。以上过程如图6.1所示。
图6.1 割线法求根
割线法需要两个初值,但是不需要求函数的导数。割线法程序如下:
function x = mysecant (f,x0 ,x1 ,n)
% Solves f(x) = 0 by doing n steps of the secant method
% starting with x0 and x1.