基本信息
文件名称:数学211吴佳平11实验报告(实验4).doc
文件大小:249 KB
总页数:9 页
更新时间:2025-06-25
总字数:约7.2千字
文档摘要

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

学生姓名:

及学号:

学院:

班级:

课程名称:

实验题目:

指导教师

姓名及职称:

吴佳平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)

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