数学211吴佳平11实验报告(实验4).doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《数值分析》课内实验报告

学生姓名:

及学号:

学院:

班级:

课程名称:

实验题目:

指导教师

姓名及职称:

吴佳平2021309010111

理学院

数学211

数值分析

非线性方程的数值解法

李鹏松教授

王博宇讲师

朱振菊实验师

2023年11月22日

目录

一、实验题目 1

二、实验目的 1

三、实验内容 1

四、实验结果 1

五、实验体会或遇到问题 7

-1-

一、实验题目

非线性方程的数值解法

二、实验目的

1.熟悉Matlab编写及运行数值计算程序的方法。

2.进一步理解求解非线性方程迭代方法的基本理论。

3.进一步掌握应用不同的方法求解非线性方程的收敛速度及误差分析。

三、实验内容

1.求下列方程的实根:

(1)x2一3x+2一ex=0;(2)x3+2x2+10x一20=0.

具体要求:

(1)设计一种不动点迭代法,要使迭代序列收敛,然后再用斯特芬森加速迭代,计算到xk一xk一110一8为止.

(2)用牛顿迭代法,同样计算到xk一xk一110一8为止.

输出迭代的初值及各次迭代值和迭代次数k,比较方法的优劣.

四、实验结果

f(x)=x2一3x+2一ex一3一

取到最大值,最大值为2ln2一50

f(x)=x2一3x+2一ex为R上的单调递减函数,则只存在一个零点

-2-

f(x)=x2-3x+2-exx=0f(0)=2-e0=1

x=0.5f(0.5)=0.25-1.5+2-e0.5=0.75-e0.5x=1f(1)=1-3+2-e1=-e

零点在区间[0,0.5]之间

利用零点存在定理以及函数单调确定唯一的零点在区间[0,0.5]之间,确定初始值为0.25。f(x)=x2-3x+2-ex,构造迭代函数φ(x)=(x2+2-ex)/3

functiony=fun1(x)

y=(x*x+2-exp(x))./3;

function[k,piancha,xdpiancha,xk,yk]=diedai2(x0,tol,ddmax)

x(1)=x0;

fori=1:ddmax

x(i+1)=fun(x(i));piancha=abs(x(i+1)-x(i));

xdpiancha=piancha/(abs(x(i+1))+eps);i=i+1;

xk=x(i);yk=fun(x(i));[(i-1)pianchaxdpianchaxkyk]if(pianchatol)|(xdpianchatol)

k=i-1;xk=x(i);return;

end

end

ifiddmax

disp(迭代次数超过给定的最大值ddmax)

k=i-1;xk=x(i);yk=fun(x(i));[(i-1)pianchaxdpianchaxkyk];

return;

end

P=[(i-1),piancha,xdpiancha,xk,yk];

[k,piancha,xdpiancha,xk,yk]=diedai2(0.25,1e-8,20)

迭代次数

迭代值

误差

1

0.259492

02

0.257022

03

0.257662

04

0.257496

05

0.257539

06

0.257528

07

0.257531

08

0.257530

09

0.257530

0-3-

10

0.257530

011

0.257530

012

0.257530

0k=

12

piancha=

3.425837835635548e-09

xdpiancha=

1.330266007035018e-08

xk=

0.257530284733899yk=

0.257530285623098

斯特芬森加速迭代

%史蒂芬森加速迭代法求根的Matlab算法function[X_k,x0,counter]=steffensen(a,err,f_x)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

文档评论(0)

奋斗 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档