二分法 牛顿迭代法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014级硕士研究生数值分析上机实习 (第一次)

姓名:乔永亮 学号:14S030125 学院:船舶与海洋工程学院 实习题目:分别用二分法和Newton 迭代法求方程02010223=-++x x x 的根. 实习目的:掌握两种解法,体会两种解法的收敛速度.

实习要求:用C 程序语言编程上机进行计算,精确到8位有效数字. 报告内容:

1. 确定实根的个数以及所在区间.

解:对函数3

2

()21020f x x x x =++-求导,得2

()34100f x x x '=++=。

易知()0f x '>恒成立,所以函数(x)f 没有极值,只有一个实根。又可以知道(1)0f <,(2)0f >方程在区间(1,2)有一个实根,且为奇数重根,可以二分法和Newton 求解

2. 将最后两次计算结果填入下表(保留8位数字):

3. 实习过程中遇到哪些问题?如何解决?有何心得体会?

在编程的过程中由于对基本计算原理的理解有一定不足,同时对编程语言的不熟悉,导致在编程过程中错误百出,耗费了大量时间。但是通过课本以及网络对所需知识的不断学习,通过尝试不同的方法,最终还是得到了几种不同的思路与方法。通过这次编程,深深的感受到自己的不足,同时也明白了数学与计算机编程的紧密结合,不努力提高自己在当今社会就要被淘汰。

4. 两种解法的计算程序(此页写不下时可以加页):

二分法(Fortran 语言)

program Analysis1

real::a,b,c,m

real::fa,fc

a=1.

b=2.

m=0.0001

!--------------------

do while(abs(b-a)>=m)

c=(a+b)/2

fa=a**3+2.*a*a+10.*a-20

fc=c**3+2.*c*c+10.*c-20

if(fa*fc<0) then

b=c

else

a=c

end if

write(*,"(f10.7)")c

end do

pause

end program Anslysis1

牛顿迭代法(Fortran语言)

program Analysis2

implicit none

!定义变量---------------------------------------------------------------external f,df

real m,x0,x1,f,df

integer i

!初始化变量-------------------------------------------------------------m=0.0001

x0=1.5

!牛顿迭代法-------------------------------------------------------------do while(abs(f(x0))>=m)

x1=x0-f(x0)/df(x0)

x0=x1

i=i+1

write(*,"(i4,f10.7)")i,x0

end do

pause

end program Analysis2

!定义原函数-------------------------------------------------------------function f(x)

implicit none

real f,x

f=x**3+2.*x*x+10.*x-20.

return

end function

!定义原函数的导函数-------------------------------------------------------function df(x)

implicit none

real df,x

df=3.*x*x+4.*x+10.

return

end function

2014级硕士研究生数值分析上机实习(第二次)

姓名:学号:学院:

实习题目:计算8阶三对角矩阵)

tridiag

235

A的行列式.

,

=

.0(

235

.0

,

.1

274

实习目的:掌握计算行列式的方法.

实习要求:首先选择一种算法,然后用C程序语言编程上机进行计算.报告内容:

1. 简单描述所采用的算法:

2. 计算结果:

=

A

3. 实习过程中遇到哪些问题?如何解决?有何心得体会?

4. 写出C语言计算程序(此页写不下时可以加页):

2014级硕士研究生数值分析上机实习 (第三次)

姓名: 学号: 学院:

实习题目:分别用Jacobi 迭代法和Gauss-Seidel 迭代法求解线性方程组

⎪⎩

⎨⎧=++=++=++9.14.35.16.84.22.78.17.27.64.38.91.2z y x z y x z y x 实习目的:感受两种迭代法的收敛速度.

实习要求:首先构造收敛的Jacobi 迭代法和Gauss-Seidel 迭代法,然后用

C 程序语言编程上机进行求解,初始值均取为0,精确到4位小数.

报告内容:

1. 写出收敛的Jacobi 迭代法和Gauss-Seidel 迭代法:

相关文档
最新文档