- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数值计算基础实验指导书及代码2013
数值计算基础
实验指导书
2013年
目录
实验一 直接法解线性方程组的 1
实验二 插值方法 4
实验三 数值积分 6
实验四 常微分方程的数值解 8
实验五 迭代法解线性方程组与非线性方程 10
实验一 直接法解线性方程组
一、实验目的
掌握列选主元消去法与追赶法解线性方程组。
二、实验内容
分别写出Guass列选主元消去法与追赶法的算法,编写程序上机调试出结果,要求所编程序适用于任何一解线性方程组问题,即能解决这一类问题,而不是某一个问题。实验中以下列数据验证程序的正确性。
1、用Guass列选主元消去法求解方程组
2、用追赶法求解方程组
三、实验仪器设备与材料
主流微型计算机
四、实验原理
1、Guass列选主元消去法
对于AX =B
1)、消元过程:将(A|B)进行变换为,其中是上三角矩阵。即:
k从1到n-1
列选主元
选取第k列中绝对值最大元素作为主元。
换行
归一化
消元
2)、回代过程:由解出。
#includeiostream.h
#include stdio.h
#include stdlib.h
#include math.h
#define N 3
#define EPS 1.0e-4
double a[N][N],b[N],c[N][N],d[N][N];
void swap(double a,double b)//换行
{
double temp;
temp=a;
a=b;
a=temp;
}
void gauss(double a[][N],double b[N])//gauss求解
{
int i,j,k,l;
double temp,m;
for(k=0;k=N-2;k++)
{
temp=fabs(a[k][k]); //选主元
l=k;
for(i=k+1;iN;i++)
{
if(fabs(a[i][k]temp))//fabs为取绝对值函数。包含在头文件math.h中
{
temp=fabs(a[i][k]);
l=i;
}
}
if(fabs(a[l][k])EPS)
{
printf(方程有无数组解!);
exit(0);
}
if(l!=k) //换行
{
for(j=k;j=N-1;j++)
swap(a[l][j],a[k][j]);
swap(b[l],b[k]);
}
for(i=k+1;iN;i++) //按行进行消元
{
m=a[i][k]/a[k][k];//行乘数
for(j=k;jN;j++)
a[i][j]-=m*a[k][j];
b[i]-=m*b[k];
}
}
if(a[N-1][N-1]==0) //矩阵行列式值为0
{
printf(矩阵的行列式为0!\n);
exit(-1);
}
b[N-1]/=a[N-1][N-1];
for(i=N-2;i=0;i--)
{
for(j=N-1;ji;j--)
b[i]-=a[i][j]*b[j];
b[i]/=a[i][i];
}
}
void main()
{
int i;
double a[][N]={{2.5,2.3,-5.1},{5.3,9.6,1.5},{8.1,1.7,-4.3}};
double b[]={3.7,3.8,5.5};
gauss(a,b); //高斯求解法
for(i=0;iN;i++) //输出结果
printf(X%d= %.4f\n,i+1,b[i]);
}
2、追赶法
线性方程组为:
做LU分解为:
分解公式:
则
回代公式:
#includestdio.h
#define N 5
double a[N][N],f[N],u[N][N],l[N][N],y[N];
void zhuigan(double a[][N],double f[N]){
int i;double x[N]={0,0,0,0};
l[0][0]=a[0][0];
for(i=0;iN;i++){
if(l[i][i]!=0)
break;
else
printf(无解!);
}
for(i=1;i=N-1;i++){
l[i][i-1]=a[i][i-1];
l[i][i]=a[i][i]-l[i][i-1]*u[i-1][i];
您可能关注的文档
最近下载
- 2024-2030全球商业气象服务行业调研及趋势分析报告.docx
- 高考英语复习读后续写练习+“千层面之爱”+传递全球温暖+课件.pptx VIP
- 新教材 人教A版高中数学选择性必修第一册全册各章节 知识点考点汇总及解题方法提炼.pdf VIP
- Midea 美的 R22W01BW11SECN扫地机器人 说明书.pdf
- 高考英语复习读后续写练习:爱心传递:善举循环的温暖故事+课件.pptx VIP
- 年产15万吨苯酚丙酮项目初步设计说明书.doc
- 燃气设备设施定期检查制度.docx VIP
- 内黄县各级文物保护单位一览表(2024版).docx VIP
- 高考英语复习读后续写练习:寒冬里的温暖与人性光辉+课件.pptx VIP
- 不收版面费的中文期刊(小木虫).doc VIP
文档评论(0)