- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++程序课程设计
迭代法求解线性方程(A级)
姓名:
学号:
指导老师: 提交日期:
目录
TOC \o 1-5 \h \z HYPERLINK \l bookmark22 \o Current Document \h 程序设计原理与功能简介 2
HYPERLINK \l bookmark52 \o Current Document \h 课程设计要求 5
HYPERLINK \l bookmark54 \o Current Document \h 源程序分析 7
HYPERLINK \l bookmark56 \o Current Document \h 新程序设计思路 10
HYPERLINK \l bookmark58 \o Current Document \h 新增模块源代码与功能介绍 11
程序设计中遇到的问题与解决方法14程序运行测试结果与分析16程序缺陷与大致优化思路20设计心得与个人体会20
程序设计中遇到的问题与解决方法
14
程序运行测试结果与分析
16
程序缺陷与大致优化思路
20
设计心得与个人体会
20
一.程序设计原理与功能简介
迭代法是线性方程的一种常用解法,首先选取适当的初值,然后用同样的计算步骤重复 计算,在满足精度的情况下,停止迭代,求得近似解。
★迭代法简介:
也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法
(或者称为一次解法),即一次性解决问题。迭代法又分为精确迭代和近似迭代。“二分法 和“牛顿迭代法属于近似迭代法。迭代算法是用计算机解决问题的一种基本方法。它利用计 算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复 执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推岀它的一个新值。最常见 的迭代法是牛顿法。其他还包括最速下降法、共轨迭代法、变尺度迭代法、最小二乘法、线 性规划、非线性规划、单纯型法、惩罚函数法、斜率投影法、遗传算法、模拟退火等等。
本程序所用的主要为赛德尔迭代法和简单迭代法,分别进行求解,然后将求解的结果 参数列出进行比较。还可以选择不同的松弛因子进行算法上的比较。其屮新增的部分主要是 文本的输入与输出,仿照源程序编写简单迭代法的部分。
★赛德尔迭代法:
设有线性方程:
% \X\ + a\2X2 + 人 + a\nXn = W
a2lx{ + a22x2 + A + a2nxn = b2
aniXl + an2X2 + ^annXn=bn
首先将系数矩阵变换成:无-仏 + /形式。
设上述线性方程组写成: 山 =: (1)
系数矩阵A可逆且主对角元素仏皿22,…,盒均不为零冷
D = diag(枷)
并将A分解成
4 = (4-D)+D
从而(1)可写成
Dx =(D - A)x + b
令:
x = Mx + f
其中 M=I-D~iA, f = D—b
即:L工纭+2
即:
j=i 5 au
JMl
其中:
a21M=。23。22A色3%a
a21
M=
。23
。22
A
色3
%
a]\
a2n
A
%
这就是原程序所变换的矩阵。
。22
A
赛德尔迭代法的不同之处在于:
算中去,即用迭代公式:
=mnx[k) + mnx^} + mi3x^k) + A + minx(^ + f{ =m2ix[k+i) + m22x^ + 加 23 无;)+ A + m2/zxz(^) + f2 =m^x\k + V} + 加 32 兀 y+ + m33X3k)+ A + m\nXnk)+ 厶
丫 伙+ 1)
A1
y(R+1) ?/V 0
J£+l) 儿3
每算出一个分量的近似值,立即用到下一个分量的计
2n
兀 T)=叫用z + 九2 雋D + mfl3x^} +A + mnnx^ + fn
g|j: x,u+l) = lLmijx(j+Y} +Ymijxlj+f (i = l,2,A,〃) j=l J=i
选用松弛因子0)代入上述线性方程得到松弛的赛德尔公式:
x^+1) = x{k) + 6O(-x^ + mnx^} + 加 13 兀丫)+ A + %兀丫)+ fj 兀$+1)=雋+ 69(—%2 +加21对D +加23兀+A +加2/1兀俨+厶) x^+v)= X3 + 0-局 + m^x\kvV} + 加 32 兀+ A + 叫£)+ 厶)
X^+1)= Xn + Q(-丘 + mn\X\k+[)+ mn2X2+[)+ 叫3 兀Y + A + fj
G通常在(0,2)内选取,当G1,成为超松弛,当Gvl时,成为亚松弛。
松弛因子的恰当选择,可以大大提高收敛速度,(经查资料,可以证明利用赛德尔法计 算方程,收敛则方程组有解,且收敛充分条件有多个,在此不一一例举),在实际计算中,往
文档评论(0)