- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言课程设计报告
课程名称: 计算机综合课程设计
学 院: 土木工程学院
设计题目: 矩阵特征值分解
级 另U: B
学生姓名:
学 号:
同组学生: 无
学 号: 无
指导教师:
2012年9月5日
C语言课程设计任务书
(以下要求需写入设计报告书)
学生选题说明:
?以所发课程设计要求为准,请同学们仔细阅读;
?本任务书提供的设计案例仅供选题参考;也可自选,但难易程度需难度相当;
?鼓励结合本专业(土木工程、力学)知识进行选题,编制程序解决专业实际问题
?限2人选的题目可由1-2人完成(A级);限1人选的题目只能由1人单独完成(B级);
设计总体要求:
?采用模块化程序设计;
?鼓励可视化编程;
?源程序中应有足够的注释;
?学生可自行增加新功能模块(视情况可另外加分);
?必须上机调试通过;
?注重算法运用,优化存储效率与运算效率;
?需提交源程序(含有注释)及相关文件(数据或数据库文件);
(cpp文件、txt或dat文件等)
?提交设计报告书,具体要求见以下说明。
设计报告格式:
目录
课程设计任务书(功能简介、课程设计要求);
系统设计(包括总体结构、模块、功能等,辅以程序设计组成框图、流程图解释) ;
模块设计(主要模块功能、源代码、注释(如函数功能、入口及出口参数说明,函数
调用关系描述等);
调试及测试:(调试方法,测试结果的分析与讨论,截屏、正确性分析) ;
设计总结:(编程中遇到的问题及解决方法);
心得体会及致谢;
参考文献
课程设计任务书
功能简介:
a) 输入一个对称正方矩阵 A,从文本文件读入;
b) 对矩阵A进行特征值分解,将分解结果:即 U矩阵、S矩阵输出至文本文件;
c) 将最小特征值及对应的特征向量输出至文本文件;
d) 验证其分解结果是否正确。
提小:A=USU具体算法可参考相关文献。
功能说明:
矩阵特征值分解被广泛运用丁土木工程问题的数值计算中, 如可用丁计算结构自振频率与
自振周期、结构特征屈曲问题等。
注:以三阶对称矩阵为例
系统设计
3.模块设计
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
FILE *fp;
int tezheng(double *a,int n,double *s,double *u,double eps,int itmax); // 函数调用
声明
int i,j,p,itmax=1000; //itmax 为最大循环次数
double eps=1e-7,s[3][3],u[3][3]; //eps 为元素精度,s 为对角矩阵 S, u 为矩阵
U
double a[9];//a 为待分解矩阵A
i=tezheng(a,3,s,u,eps,1000);
对应函数中的返回值it打开待输入
对应函数中的返回值it
打开待输入txt文件
下几句分别向屏幕和txt文件输入矩阵U
{
if((fp=fopen("juzhen.txt”,"w"))==NULL) //
{
printf(" 无法打开文件.\n");
return;
}
printf("U 矩阵为:\n"); //
fprintf(fp,"U 矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%10.6f",u[i][j]);
fprintf(fp,"%10.6f",u[i][j]);
}
printf("\n");
fprintf(fp,"\n");
}
printf("S 对角矩阵为:\n"); // 下几句分别向屏幕和 txt文件输入矩阵S
fprintf(fp,"S 对角矩阵为:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%10.6f",s[i][j]); fprintf(fp,"%10.6f",s[i][j]); } printf("\n"); fprintf(fp,"\n"); } p=0; for(i=0;i<3;i++)// 下面几句为求最小特征值及其对应特征向量, 并输出到屏幕和txt文
件中 if(s[i][i]<s[0][0]) p=i; printf("最小特征值为:%10.6f\n",s[p][p]); fprintf(fp," 最小特征值为:%10.6f\n”,s[p][p]);
printf(" 对应特征向量为:\n");
fprintf(fp," 对应特征向量为:\n");
for(i=0;i<3;i++) { printf("%10.6f\n",u[i][p]);
}
int tezheng(double *a,int n,double s
文档评论(0)