数值计算方法课程报告.docx
- 文档编号:25213596
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:13
- 大小:101.43KB
数值计算方法课程报告.docx
《数值计算方法课程报告.docx》由会员分享,可在线阅读,更多相关《数值计算方法课程报告.docx(13页珍藏版)》请在冰豆网上搜索。
数值计算方法课程报告
课程报告
课程名称______《数值计算》__
学生学院_____机电工程学院___
专业班级_____微电子
(1)班____
学号________
学生姓名_______________
指导教师_____________
XXXX年XX月XX日
姓名:
线
学号:
订
装专业:
学院:
广东工业大学考试试卷(A)
课程名称:
数值计算
试卷满分
100分
考试时间:
2015年12月26日
(第17周星期六)
题号
一
二
三
四
五
六
七
八
九
十
总分
评卷得分
评卷签名
复核得分
复核签名
“数值计算”考试要求
“数值计算”考试以开卷形式进行。
在“数值计算”课程考试日(2015
年12月19日,第12周星期五)考试时间,在考试教室领取试题,在2015
年12月26日(第17周星期六)进行答辩。
不参加答辩者将取消考试成绩。
“数值计算”考试结果要求独立在计算机上完成,可使用Matlab或C
程序编程实现。
考试结果将以报告书形式提交,内容包括对问题描述、计算
程序以及算例、计算结果、分析组成。
计算程序要求具有通用性,能够处理
异常情况,可以输入问题、算法参数、算例及初始值,在计算过程中显示当
前计算状态、计算完成后显示计算结果。
上述内容将作为试卷成绩的主要评
定依据。
特别提醒,不得使用教师在讲课和实验时的范例作为考试结果。
报
告书具体格式参考毕业设计手册。
以考生学号命名的文件夹存放程序及报告书电子版,以班级为单位刻录
在一张光盘中,与打印版报告书一起由班长和学习委员一起上交任课教师。
数值计算课程总成绩将由试卷成绩(70%)、平时成绩(30%)组成。
一编写Gauss列主元消元法求解线性方程组的程序,要求附有算例。
(本题20分)
二编写多项式插值的程序,要求附有算例。
(本题20分)
三编写Gauss积分方法的程序,要求附有算例。
(本题20分)
四编写Euler方法求常微分方程初值问题的程序,要求附有算例。
(本题20分)
五编写Newton迭代法求非线性方程的程序,要求附有算例。
(本题20分)
广东工业大学试卷用纸,共2页,第2页
一编写Gauss列主元消元法求解线性方程组的程序,要求附有算例。
(本题20分)
问题描述:
编写一C语言程序,算法为列主元消元法,功能为求解线性方程组。
解:
#include
#include
#defineN200
voidmain()
{
inti,j,k,m,n;
floats,e,q;
doublex;
floatX[N];
floatarray[N][N+1];
printf("请输入方程的阶数\n");
scanf("%d",&n);
printf("输入的原方程系数,中间用空格隔开\n");
for(i=0;i for(j=0;j scanf("%f",&array[i][j]); printf("方程系数为\n"); for(i=0;i { for(k=0;k<=n-1;k++)//在相应的列中选主元// { m=k; for(i=k+1;i<=n-1;i++) { x=fabs(array[m][k]); if(fabs(array[i][k]>x)) m=i; } printf("最大元在第%d行\n\n\n\n",m); if(array[m][k]==0) { printf("ERROR"); return; } else//两行进行比较交换两行// { for(j=k;j<=n;j++) { q=array[k][j]; array[k][j]=array[m][j]; array[m][j]=q; }//换行结束// for(i=0;i { for(j=0;j { printf("%8.4f",array[i][j]); } printf("\n");//输出换行后的矩阵// } printf("\n\n\n\n\n\n"); for(i=k+1;i<=n-1;i++) { s=array[i][k]/array[k][k];//消元过程// for(j=0;j<=n;j++) { array[i][j]=-(array[i][j]-s*array[k][j]); } } } } } printf("变换后的矩阵\n"); for(i=0;i { for(j=0;j { printf("%8.4f",array[i][j]); } printf("\n"); } printf("\n"); array[n-1][n]=array[n-1][n]/array[n-1][n-1]; array[n-1][n-1]=1; for(i=n-2;i>=0;i--) { e=0; for(j=i+1;j { e=e+array[i][j]*array[j][n]; } array[i][n]=(array[i][n]-e)/array[i][i]; array[i][i]=1; for(j=i+1;j {array[i][j]=0;} } printf("消元后的矩阵\n"); for(i=0;i { for(j=0;j { printf("%8.4f",array[i][j]); } printf("\n"); } for(i=0;i { X[i]=array[i][n]; } printf("解的集合\n"); for(j=0;j { printf("%8.4f",X[j]); } printf("\n"); } 例子: 求方程组的解。 运算程序结果: 计算结果与分析: 计算结果如下: 。 代入方程中得带的结果等于右边。 可见列主元消元法求解精度高。 二编写多项式插值的程序,要求附有算例。 (本题20分) 问题描述: 写一C语言程序,算法为拉格朗日插值法,功能为求解多项式函数。 插值函数为: 解: #include"stdio.h" #defineN200 voidmain() { inti,t,j,n; floata,b,c=0,x,w; floatX[N]; floatY[N]; printf("请输入已知的数个数\n"); scanf("%d",&n); printf("请输入x的值\n"); for(j=0;j { scanf("%f",&X[j]); } printf("\n"); printf("X的集合\n"); for(i=0;i { printf("%8.4f",X[i]); } printf("\n"); printf("\n"); printf("请输入对应y的值\n"); for(j=0;j { scanf("%f",&Y[j]); } printf("y的集合\n"); for(i=0;i { printf("%8.4f",Y[i]); } printf("\n"); printf("\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 计算方法 课程 报告