7. 结果与分析
8. 附录:程序清单
%*************************************************************
%* 程序名:SecantMethod.m *
%* 程序功能:用弦截法求解非线性方程. *
%*************************************************************
clc;
clear all;
f=inline('2*x^3-5*x-1'); % 函数f(x)
x0=input('第一初值: x0 = ');
x1=input('第二初值: x1 = ');
epsilon=input('误差限: epsilon=');
N=input('最大迭代次数: N=');
fprintf('\n n x(n)\n'); % 显示表头
fprintf('%2d%14.6f\n', 0, x0); % 占2位显示步数0, 共14位其中小数6位显示x0 fprintf('%2d%14.6f\n', 1, x1); % 占2位显示步数1, 共14位其中小数6位显示x1
1 % 存x0点函数值
2 % 存x1点函数值
3 % 迭代计数器
4 % while n ≤ N
% 弦截法公式
fprintf('%2d%14.6f\n', n, x); % 显示迭代过程
6 % 达到精度要求否
fprintf('\n\n 方程的近似解为: x≈%f\n\n', x);
return; % 达到, 则显示结果并结束程序
8
9 % 原x1做x0为前两步的近似值
10 % 现x做x1为一两步的近似值
11 % x0点函数值
12 % 计算x1点函数值, 为下一次循环
13 % 计数器加1
14
fprintf('\n 迭代%d次还不满足误差要求.\n\n',N);