计算方法 用欧拉预估-校正法求初值问题
时间:2025-04-22
时间:2025-04-22
计算方法 上机实验 程序设计
《计算方法》实验指导书
实验1 方程求根
一、实验目的
1. 通过对二分法、牛顿法、割线法作编程练习,进一步体会它们各自不同的特点; 2. 了解二分法,切线法,割线法。
3. 能熟练运用二分法,牛顿法进行方程求根
4. 通过上机调试运行,对方程求根的几种方法程序进行改进。
二、实验要求
1. 上机前作好充分准备,包括复习编程所需要的语言工具。 2. 上机时要遵守实验室的规章制度,爱护实验设备。
3. 记录调试过程及结果,记录并比较与手工运算结果的异同。 4. 程序调试完后,须由实验辅导教师在机器上检查运行结果。 5. 给出本章实验单元的实验报告。
三、实验环境、设备
1. 硬件设备:IBM PC以上计算
机,有硬盘和一个软驱、单机和网络环境均可。
2. 软件环境: C语言运行环境。
四、实验原理、方法 二分算法计算步骤:
(1)输入有根区间的端点a、b及预先给定的精度ε;
(2)计算中点x=(a+b)/2;
(3)若f(x)f(b)<0,则a=x,转向下一步;否则b=x,转向下一步; (4)若b-a<ε,则输出方程满足精度要求的根x,结束;否则转向步骤(2)。 迭代法:
计算方法 上机实验 程序设计
图2 牛顿法框图
图 2.3 迭代法框图
牛顿法:
牛顿迭代法是一种逐步线性化方法,即将非线性方程f(x)=0的求根问题归结为计算一系列线性方程的根。
设xk是方程f(x)=0的一个近似根,将f(x)在xk处作一阶泰勒展开,即
f(x)≈f(xk)+f′(xk)(x- xk)
于是得到如下的近似方程
f(xk)+f′(xk)(x- xk)=0 (2.7)
设f′(xk)≠0,则式(2.7)的解为
x xk
取x作为原方程的新的近似根xk+1,即令
f(xk)
'
f(xk)
xk 1 xk
f(xk)
k=0,1,2, … (2.8)
f'(xk)
则称式(2.8)为牛顿迭代公式。用牛顿迭代公式(2.8)求方程近似根的方法称为牛顿迭代法,简称牛顿法,又称切线法。
五、实验内容
1. 以方程:x-0.2x-0.2x-1.2=0为例,编写程序求方程的根
3
2
计算方法 上机实验 程序设计
2. 编写二分法、迭代法、牛顿法程序,分析运行结果。 3. 对用这两种方法求解出的根进行对比分析
六、实验步骤
1. 根据实验题目,给出题目的C程序。 2. 上机输入和调试自己所编的程序。 3. 上机结束后,应整理出实验报告。
七、实验报告要求及记录、格式
按金陵科技学院《实验报告(工科)》格式填写
附1:牛顿法程序核心部分:
for(i=0;i<N;i++)
{printf("x(%d)=%f\n",i,x1);
x1=x0-f(x0)/f1(x0); /*牛顿迭代*/
if(fabs(x1-x0)<epsilon||fabs(f(x1))<epsilon)
{printf("\n The root of the equation is x=%f\n",x1);/*满足精度,输出近似根*/ return; } x0=x1; }
计算方法 上机实验 程序设计
实验2 线性方程组数值解法
一、实验目的
1.掌握方程组的解法,迭代法及其收敛性。
2.能熟练掌握高斯消去法,列主元高斯消去法,三角分解法。 3.掌握雅可比迭代法,高斯=赛德尔迭代求线性方程组的解。
二、实验要求
1.上机前作好充分准备,比较不用的方法解决相同问题的不同。 2.上机时要遵守实验室的规章制度,爱护实验设备。 3.记录调试过程及结果,记录并比较与手工
运算结果的异同。
4.程序调试完后,须由实验辅导教师在机器
上检查运行结果。
5.给出本章实验单元的实验报告。
三、实验设备、环境
1.硬件设备:IBM PC以上计算机,有硬盘和一个软驱、单机和网络环境均可。 2.软件环境: C语言运行环境。
四、实验原理、方法
1、高斯消去法:
1)计算步骤
(1)输入方程组的阶数n,系数矩阵A和右端常数矩阵b
(2)消元过程:设a计算
(k)k
mik aik/akk (k 1)
(k)(k)
k+2,…, aij aij mikakj i,j=k+1,
(k 1)(k)(k)b b mbiiikk
(k)
kk
0,对k=1,2,…,n-1
n
(3)回代过程
(n)
bn xn a(n) nn
x (b(i) ii
(i)(i)
xj)/aii,i n 1, ,2,1 aijn
高斯消去法框图
j i 1
(4)输出方程组的解
计算方法 上机实验 程序设计
2、列主元高斯消去法
(1)、输入方程组的阶数n,系数矩阵A和右端常数矩阵b (2)、列主元素:对k=1,2,…,n-1,选出akk
(k 1)
(k 1)(k 1)(k 1)
中绝对值最大的元素am,k,,ak 1,k, ,ank
k行和m行交换后,再作第k步消元操作。
(3)、消元过程:对k=1,2,…,n-1计算
(k)( m ak)
ikik/akk a(k 1)
(k)m(k)
ij aij ikakj b(k 1)
i
b(k)i mikb(k)k(i,j=k+1,k+2,…,n) (4)、回代过程
( xbn)
nn (
an)
nn
) x (b(i) x(i)
iiijj)/aii(i n 1, ,2,1)
j n
a
(i i 1
(5)、输出方程组的解
3、三角分解法:
(1)根据方程组得到增广矩阵 (2)对j=1,2,…,n计算u1j a1j
对i=2,3,…,n计算la
i1i1 u
11
(3)对k=1,2,…,n
k 1
a.对j=k,k+1,…,n+1计算ukj akj
l
kq
uqj
q 1
下一篇:《倒数的认识》教学课件2