- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性方程组的直接解法实验报告
本科实验报告
课程名称: 数值计算方法B
实验项目: 线性方程组的直接解法
最小二乘拟合多项式
实验地点: ZSA401
专业班级: 学号: 201000
学生姓名:
指导教师: 李志
2012年 4月 13日
线性方程组的直接解法 一、实验目的和要求
实验目的:合理利用Gauss消元法、LU分解法或追赶法求解方程组。
实验要求:利用高斯消元法,LU分解法或追赶法进行编程,求解题中所给的方程组。 二、实验内容和原理
实验内容:合理利用Gauss消元法、LU分解法或追赶法求解下列方程组:
①
②
③(n=5,10,100,…)
实验原理:这个实验我选用的是高斯消元法。高斯消元法:先按照
Lik=aik^(k-1)/akk^(k-1) ,
aij^(k)=aij^(k-1)-likakj^(k-1)
[其中k=1,2,…,n-1;i=k+1,k+2,…,n;j=k+1,k+2,…,n+1]
将方程组变为上三角矩阵,再经过回代,即可求解出方程组的解。
三.计算公式
通过消元、再回代的求解方法称为高斯消元法。特点是始终消去主对角线
下方的元素。 四、操作方法与实验步骤
#include Stdio.h
#define N 3
main()
{
double a[N][N+1],b[N];
int i,j,k,x=0;
for(i=0;iN;i++)
{
for(j=0;j=N;j++)
{
scanf(%lf,a[i][j]);
}
}
for(k=0;kN;k++)
{
for(i=x;iN-1;i++)
{
for(j=N;j=0;j--)
{
a[i+1][j]=a[i+1][j]-a[x][j]*a[i+1][x]/a[x][x];
}
}
x++;
}
for(i=0;iN;i++)
{
for(j=0;j=N;j++)
{
printf(%lf ,a[i][j]);
}
printf(\n);
}
b[2]=a[2][3]/a[2][2];
b[1]=(a[1][3]-a[1][2]*b[2])/a[1][1];
b[0]=(a[0][3]-a[0][2]*b[2]-a[0][1]*b[1])/a[0][0];
for(i=0;iN;i++)
{
printf(x(%d)=%lf\n,i+1,b[i]);
}
getch();
}
五、实验数据记录和处理
实验结果:
六、实验结果与分析
大体来说,实现了课程设计的算法要求及功能,有很多还不能很好的处理的问题,需要我们在改进中不断完善。做本次实验中有些地方有困难,就是获得数组中各元素的值,要用到for循环来输入各个元素的值。还有就是将方程组化为上三角矩阵,也要用到好几个for循环,比较容易出错。
七、讨论、心得
做实验要求我们把基础学扎实,上机实验让我又重新巩固了C语言知识。
我的实验是线性方程组的直接解法,刚开始调试代码的时候有时候就是很小的错误导致整个程序不能运行,需要我们一步一步慢慢来,经过无数次的检查程序错误的原因,以及在老师的帮助下,完成了这次实验。
最小二乘拟合多项式 一、实验内容
给定数据点(xi ,yi),用最小二乘法拟合数据的多项式,并求平方误差。
xi
0
0.5
0.6
0.7
0.8
0.9
1.0
yi
1
1.75
1.96
2.19
2.44
2.71
3.00
计算公式
y=a0+a1x 结构程序设计
//最小二乘法拟合
//本程序包含两个函数,主函数与Gauss消元函数
#includestdio.h
#includemath.h
#define N 10
#define M 20
double A[N][N+1];
void Gauss_eliminate(int n,double* answer){
int k,i,j,sum;
/*消元重构矩阵使之成为上三角矩阵*/
for(k=1;kn;k++){ //k为高斯消元法上标,指示消元代数
for(i=k+1;i=n;i++)
A[i][k]
文档评论(0)