matlab编程,用牛顿法求4cosX=e^X的根,要求精度达到0.0001,取Xo=π/4

各位高手谢谢了... 各位高手 谢谢了 展开
 我来答
百度网友c3efede
2010-06-28 · TA获得超过1460个赞
知道小有建树答主
回答量:535
采纳率:100%
帮助的人:570万
展开全部

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次迭代修正。由曲线最后的平缓性可以知道收敛效果不错。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式