close all;clear all;clc;
% 原方程成立等效于4*cos(x)-exp(x)=0;
% 定义一些基本数据
x0=pi/4;% 初始值
e=0.0001; % 精度
flag=1; % 判断精度的一个值,初始置为一个大值
d=0; % 每次修正的一个增量,为了程序可读性,先定义一下
x=x0; % 用于计算的变量x
% 然后进行迭代计算
% 以下为收敛性查看,凡是关于xlist,ylist,i这些参数都是用于绘图的
% 如果只是需要结果的话,请忽略之。
i=1;
while 1
flag=4*cos(x)-exp(x);
if abs(flag)<=e; % 判断精度要求
break;
end
% 以下为各种记录而已
ilist(i)=i;
xlist(i)=x;
ylist(i)=flag;
i=i+1;
% 修正
d=-flag/(-4*sin(x)-exp(x));
x=x+d;
end
disp(['求解的x值为' num2str(x) ',误差为' num2str(flag) '。']);
% 以下为作图
figure(1);hold on;
plot(ilist,xlist,'r-*');
plot(ilist,ylist,'b-^');
-------------------------------------------------------------
结果如下:
求解的x值为0.90479,误差为-1.1928e-009。
由图片,知共进行了三个点的试算,进行了2次迭代修正。由曲线最后的平缓性可以知道收敛效果不错。