二分法 牛顿迭代法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 迭代法: