太原理工大学数值计算实验报告
LT
本科实验报告
课程名称: 计算机数值方法
实验项目: 方程求根,线性方程组的直接求解,
线性方程组的迭代求解,代数插值和最小二乘法拟合
实验地点: 软件楼208
专业班级: 学号:
学生姓名:
指导教师: 李志 崔冬华
2015年6 月 5 日
学生姓名
实验成绩
实验名称
实验一 方程求根
实验内容和要求(必填)
实验结果和分析
实验结果:
迭代法:
割线法:
心得体会(遇到的问题和解决方法)
使用不同的方法,可以不同程度的求得方程的解,不同的方法速度不同。
实验名称
实验二 线性方程组的直接求解
实验内容和要求
(1)了解线性方程组常见的直接解法,如Guass消元法、LU分解法、追赶法。
(2)加深对线性方程组求解方法的认识,掌握算法。
(3)会进行误差分析,并能对不同方法进行比较。
实验原理
合理利用Gauss消元法、LU分解法或追赶法求解下列方程组:
1 、
4、(n=5,10,100,…)
主要仪器设备
台式或笔记本计算机
实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)
①Gauss消元法:
#include ""
#include""
#include"iostream"
using namespace std;
float main()
{ float a[3][4]={{1,2,3,14},{0,1,2,8},{2,4,1,13}};
float x[3];
float sum=0;
int k,i,j;
for(k=0;k<2;k++)
for(i=k+1;i<3;i++)
for(j=k+1;j<4;j++)
a[i][j]=a[i][j]-a[i][k]/a[k][k]*a[k][j];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
printf("a[%d][%d]=%f,",i,j,a[i][j]);
cout<<endl;
x[2]=a[2][3]/a[2][2];
for(k=1;k>=0;k--)
{ sum=0;
for(j=k+1;j<3;j++)
{
sum+=a[k][j]*x[j];
}
x[k]=(a[k][3]-sum)/a[k][k];
}
for(i=0;i<3;i++)
printf ("x[%d]=%f,",i+1,x[i]);
}
③LU分解法:
#include ""
#include <>
#include <>
#define L 30
double a[ L ][ L ], b[ L ], l[ L ][ L ], u[ L ][ L ], x[ L ], y[ L ];
int main(){
int n, i, j, k, r;
scanf( "%d", &n );
for ( i = 1; i <= n; ++i ) {
for ( j = 1; j <= n; ++j ) {
scanf( "%lf", &a[ i ][ j ] );
}
}
太原理工大学数值计算实验报告 来自淘豆网m.daumloan.com转载请标明出处.