- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(WORD)-高斯—赛德尔迭代法课程设计-其他专业
C++课程设计实验报告
姓名 陈晓杜 学号 班级 0511590130
任课教师 肖亮 时间 2006-9-20
教师指定题目 高斯—赛德尔迭代法
评定难易级别 A
实验报告成绩
实验内容:
一: 程序功能介绍
采用高斯-赛德尔迭代法解线性方程组
二:解方程组的原理
所解的方程的系数矩阵为对角优势;
一般行数不超过10行;
首先将矩阵变换成:x=Mx+f的形式;
接着选取适当的初值,本程序选取0;
选取适当的松弛因子,将初始化后的值进行迭代;
然后用同样的计算步骤重复计算;
在满足精度的情况下,停止迭代,求得近似解。
三:程序设计要求
设计测试主程序
在主程序完成测试
测试线性方程:
10*X1+X2+2*X3=44
2*X1+10*X2+X3=51
X1+2*X2+10*X3=61
解:X1=3,X2=4,X3=5
四:程序的主要内容
给出类 构造函数 输入行列数 变换矩阵
初始化对角 设松弛因子 迭代计算
控制精度 输入矩阵 输出结果 main函数
五: 源程序结构流程框图
六:基本数据结构
class matrix //高斯-赛德尔矩阵算法类
{
friend void operator(ostream ,matrix );//重载输出运算符
friend void operator(istream ,matrix );//重载输入运算符
protected:
int row,column;//矩阵行列数
double **mat;//矩阵
int varnum;//矩阵解的个数
double *variable;//存放方程解
int itercount;//迭代次数
void iteration(double);//迭代算法,参数是松弛因子
bool epsilon(double*,double*,int,double);//误差函数
public:
matrix(int,int);//构造函数
static void initialize(int,int);//要求用户输入行列数
void rearrange();//变换矩阵
void relax(double );//控制松弛因子
void solve(double);//主要算法部分,参数是松弛因子
void show_answer();//最后输出结果
};
七:程序运行结果界面
图1. 初始界面 图2.运行过程
图3.错误处理 图4.运行结果
八:课程设计遇到的技术问题与解决思路
问题1: 在输入线性方程组的时候要考虑方程的个数不应该太大,而且要考虑行数应比列数少1才能得惟一解。如何保证错误的输入程序不执行,要求重新输入?
解决办法: 刚开始我使用while语句,但总是会出现死循环;后发现while可能一次都不执行,也可能无限次返回1,造成死循环。后又使用for语句,但发现存有隐患;最后使用do-while语句来解决。解决办法即用do-while做外层循环,判断行列间的关系。再用while语句做内层循环,来控制行列数的大小。同时由于do-while要先进行一次运行,所以也避免了死循环的产生。
问题2:经过试运行发现松弛因子的取值和结果有很大的关系。一般来说只有当松弛因子取值范围在0到2时才有正确结果。怎么样才能得到正确的结果?
解决办法:还是使用while语句来判断松弛因子的大小。
问题3:在要求输入矩阵的行列和松弛因子时,本该输入的是int或是double型,此时若输入的是char型就会造成死循环。怎样才能排除char导致的死循环?
解决办法:开始时采用把所有的数据全改位char型再用ASCII码来判断。但这种办法不大可行有可能造成不必要的麻烦。其次考虑到输入的行列数毕竟都不大于10,而一个一位数只占用一个字节,而如果是字母则占用四个字节,即使是数字如果不是一位数那至少要占用两个字节,所以可以考虑使用sizeof() 先判断输入的字节数,如果大于一则不满足输入需要不执行。该方法在输入行列时获得成功。但在输入松弛因子时由于输入的是double型,就无法获得成功。最后我采用安全输入函数safe_int()来控制输入数据类型,最终获得成功。
九:参考资料
(1):《现代应用数学手册——计算与数值分析卷》
您可能关注的文档
- (DOC)-异步电动机矢量控制调速系统设计外文翻译-其他专业.doc
- (DOC)-液压阀毕业设计外文翻译-液压系统.doc
- (DOC)-港口物流外文翻译--以港口为中心的物流-其他专业.doc
- (DOC)-焦作市首届小学语文教师素养大赛笔试试题.doc
- (DOC)-网上购物毕业论文外文翻译-其他专业.doc
- (DOC)-营销策略外文翻译---衡量口碑营销的新方法-其他专业.doc
- (DOC)-装饰公司各部门制度及岗位职责(全).doc
- (DOC)-牧宝皮业皮具公司员工晋升淘汰考核制度DOC-人事制度表格.doc
- (DOC)-薪酬管理毕业论文外文翻译资料-其他专业.doc
- (DOC)-金融学专业外文翻译------客户角度下的最优选择:银行与保险公司联盟-金融财政.doc
- (WORD)-黄冈中学高考数学典型例题13---数列的通项与求和.doc
- (ZGDXGZK2011001)宽带上网专线协议(城域网通用版).doc.doc
- (一)各级安全生产责任制和安全生产规章制度目录及文件,操作规程目录.doc
- (万科)A-2设备材料供货安装三方合同标准版本.doc
- (万科)A-2设备材料供货合同标准版本.doc
- (中英文)国际货物买卖合同 Contract of International Goods Sales.doc
- (word版有答案)四川达州市2015年中考题.doc
- (临床诊断学课件)少尿与多尿.ppt
- (人教版)龙驹小学五年级品社上册复习题.doc.doc
- (信息化)人武部日常战备建设规范全文 2.doc
文档评论(0)