#include<stdio.h>
#include<math.h>
#define N 9//方程组阶数
typedef double s32;
int main()
{
static s32 a[N][N]={{12.38412,2.115237,-1.061074,1.112336,-0.113584,0.718719,1.742382,3.067813,-2.031743},
{2.115237,19.141823,-3.125432,-1.012345,2.189736,1.563849,-0.784165,1.112348,3.123124},
{-1.061074,-3.125432,15.567914,3.123848,2.031454,1.836742,-1.056781,0.336993,-1.010103},
{1.112336,-1.012345,3.123848,27.108437,4.101011,-3.741856,2.101023,-0.71828,-0.037585},
{-0.113584,2.189736,2.031454,4.101011,19.897918,0.431637,-3.111223,2.121314,1.784317},
{0.718719,1.563849,1.836742,-3.741856,0.431637,9.789365,-0.103458,-1.103456,0.238417},
{1.742382,-0.784165,-1.056781,2.101023,-3.111223,-0.103458,14.7138465,3.123789,-2.213474},
{3.067813,1.112348,0.336993,-0.71828,2.121314,-1.103456,3.123789,30.719334,4.446782},
{-2.031743,3.123124,-1.010103,-0.037585,1.784317,0.238417,-2.213474,4.446782,40.00001}
};
s32 b[N]={2.1874369,33.992318,-25.173417,0.84671695,1.784317,-86.612343,1.1101230,4.719345,-5.6784392};
s32 x[N]={0,0,0,0,0,0,0,0,0};
s32 r,s,e;
int k,i,j,p,flag=1;
printf("\n****高斯列主消元法****\n\n");
for(k=0;k<N-1;k++)
{
p=k;
e=a[k][k];
for(i=k;i<N;i++)
if(fabs(a[i][k])>e)//找主元
{
e=fabs(a[i][k]);
p=i;
}
for(j=k;j<N;j++)
{
s=a[k][j];//交换两行
a[k][j]=a[p][j];
a[p][j]=s;
}
s=b[k];
b[k]=b[p];
b[p]=s;
if(a[k][k]==0)
{
printf("列主消元程序不能运行。");
flag=0;
break;
}
else
{
for(i=k+1;i<N;i++)
{
r=a[i][k]/a[k][k];
if(a[k][k]!=0)
{
for(j=k;j<N;j++)
a[i][j]=a[i][j]-r*a[k][j];//进行消元计算
}
b[i]=b[i]-r*b[k];
}
}
}
if(flag)
{
x[N-1]=b[N-1]/a[N-1][N-1];//回代过程
for(i=N-2;i>=0;i--)
{
s=b[i];
for(j=i+1;j<N;j++)
s=s-a[i][j]*x[j];
x[i]=s/a[i][i];
}
for(i=0;i<N;i++)
printf("x[%d]=%10.7f\n",i+1,x[i]);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
数值分析上机C语言代码.zip_三次样条插值_数值分析C语言编程上机实验
共31个文件
layout:5个
o:5个
depend:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
1 下载量 127 浏览量
2022-09-20
10:05:26
上传
评论
收藏 93KB ZIP 举报
温馨提示
在数值分析领域,C语言常被用来实现各种计算方法,以解决复杂的数学问题。本压缩包文件中的资源涉及了几个核心概念,包括三次样条插值、龙贝格积分、牛顿迭代法、龙格卡塔公式以及高斯列主消元法。接下来,我们将深入探讨这些知识点。 三次样条插值是一种在离散数据点间构造平滑连续函数的方法。它通过构造三次多项式,在每个子区间内保证函数的连续性、一阶导数的连续性和二阶导数的连续性。这种方法在数据拟合、曲线光滑以及物理模型的近似等方面有着广泛的应用。 龙贝格积分是数值积分的一种高效算法,尤其适用于高精度计算。它基于复化辛普森法则,通过对称性减少误差,通过逐步增加积分区间的细分来提高精度。龙贝格积分的C语言实现通常涉及到递归和误差控制。 牛顿迭代法是求解非线性方程根的迭代方法。通过构造方程的切线,并找到切线与x轴的交点作为新解的估计,不断迭代直到达到预设的精度。C语言实现牛顿迭代法时,需要考虑迭代过程中的稳定性,防止发散或过早停止。 龙格卡塔公式是常微分方程初值问题的一种数值解法,它将连续的时间间隔离散化,通过近似的线性组合来估算下一时刻的值。常见的有四阶龙格卡塔公式,其精度较高,但需注意避免数值稳定性问题。 高斯列主消元法是线性代数中求解线性方程组的一种方法。通过行变换将系数矩阵转化为上三角矩阵,然后通过回代求解。在C语言编程中,需要注意矩阵操作的效率和内存管理,尤其是在处理大型矩阵时。 这些内容在数值分析的C语言编程上机实验中都是重要组成部分。通过实际编写和运行代码,学生可以更好地理解这些方法的工作原理,提升编程能力,并对数值计算有更深入的理解。在实际应用中,结合合适的误差分析和调试技巧,这些方法能够帮助我们处理各种实际问题。
资源详情
资源评论
资源推荐
收起资源包目录
数值分析上机C语言代码.zip (31个子文件)
三次样条插值
bin
Debug
sc.exe 31KB
main.c 1KB
obj
Debug
main.o 5KB
sc.layout 321B
sc.cbp 1KB
sc.depend 127B
龙贝格积分
bin
Debug
rumberg.exe 30KB
rumberg.depend 132B
rumberg.cbp 1KB
main.c 990B
obj
Debug
main.o 4KB
rumberg.layout 318B
牛顿迭代法
bin
Debug
newtom.exe 29KB
main.c 752B
newton.jpg 24KB
obj
Debug
main.o 3KB
newtom.cbp 1KB
newtom.depend 144B
newtom.layout 319B
龙格卡塔
rk.depend 127B
bin
Debug
rk.exe 33KB
main.c 2KB
obj
Debug
main.o 7KB
rk.cbp 1KB
rk.layout 320B
高斯列主消元法
bin
Debug
gs.exe 31KB
gs.layout 321B
main.c 2KB
obj
Debug
main.o 5KB
gs.depend 127B
gs.cbp 1KB
共 31 条
- 1
寒泊
- 粉丝: 85
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0