姓名:苏福
计算方法A上机实验报告
班级:硕4020
学号:3114161019
一、上机练习目的
1)复习和巩固数值计算方法的基本数学模型,全面掌握运用计算机进行数值计算的具体过程及相关问题。
2)利用计算机语言独立编写、调试数值计算方法程序,培养学生利用计算机和所学理论知识分析解决实际问题的能力。
二、上机练习任务
1)利用计算机语言编写并调试一系列数值方法计算通用程序,并能正确计算给定题目,掌握调试技能。
2)掌握文件使用编程技能,如文件的各类操作,数据格式设计、通用程序运行过程中文件输入输出运行方式设计等。
3)写出上机练习报告。
三、上机题目
1共轭梯度法求解线性方程组。(第三章)2三次样条插值(第四章)3龙贝格积分(第六章)4四阶龙格-库塔法求解常微分方程的初值问题
四、上机报告
题目1:共轭梯度法求解线性方程组1.算法原理
共轭梯度法是把求解线性方程组的问题转化为求解一个与之等价的二次函数极小值的
问题。从任意给定的初始点出发,沿一组关于矩阵A共轭的方向进行线性搜索,在无舍入误差的假定下,最多迭代
次(其中
为矩阵A的阶数),就可求得二次函数的极小值,也就求得了线性方程组Axb的解。
定理:设A是
阶对称正定矩阵,则x是方程组Axb的解得充分必要条件是x是二
次函数fx1xTAxbTx的极小点,即2
Axbfxmi
fxxR
共轭梯度法的计算公式:
d0r0bAx0
k
rkTdkdkTAdk
xk
1
r
k
1
xkkdbAxk1
k
k
rk1TAdkdkTAdk
dk1rk1kdk
f2程序框图
给定初始近似向量x0及精度
d0r0bAx0
k0
k
rkTdkdkTAdk
xk1xkkdk
rk1bAxk1
k
rk1TAdkdkTAdk
dk1rk1kdk
kk1
rk1ork1
NoYes
近似解xk1
3MATLAB编程实现(1)编写共轭梯度法求解对称正定矩阵的线性方程组见附录(mygem):
fu
ctio
xmygeAb
输入对称正定矩阵及对应的列向量,初始向量设为0,精度取为108。函数的输出即为
由共轭梯度发求解的近似解。(2)编写具体算例求解(examplem):
clcclearall例题342A0201010102b0313mygeA0b0习题32
100矩阵阶数Azeros
bzeros
1b11b
1A112A121A
11A
2
ffori2
1Aii11Aii2Aii11
e
dmygeAb算例1(课本例题342):
201x13
0
1
0
x2
1
102x33
算例2(课后习题计算实习32):
4算例结果算例1:
21
1
2
1
x11
x2
0
r