数值分析实验用程序实现Gauss消元法

上传人:孙哥 文档编号:170919842 上传时间:2022-11-23 格式:DOCX 页数:4 大小:108.07KB
返回 下载 相关 举报
数值分析实验用程序实现Gauss消元法_第1页
第1页 / 共4页
数值分析实验用程序实现Gauss消元法_第2页
第2页 / 共4页
数值分析实验用程序实现Gauss消元法_第3页
第3页 / 共4页
点击查看更多>>
资源描述
数值分析实验报告实验序号:实验一实验名称:实验目的:用Microsoft visual C+编写一个功能与Windows计算器一样的计算器。二 实验内容:(1)算法介绍:计算方法分析:Gauss 消元法的基本做法就是把方程组转化成为一个如下图的等价的三角方程组,这个过程叫做消元。得到三角方程组后,就可以逐个求出Xn, Xn-1,,XI,这个过程叫回代。谓忒- 忒二叫?i.程序代码分析:建立两个数组a和b,通过循环语句将n阶增广矩阵输入进去,通过对列的循环对每一 列进行消去未知数,通过n小步n大步把矩阵化简成上三角形矩阵,最后通过迭代法解得方 程组得解。(2)算法分析:程序中只用到一个主函数,求解线形方程组得算法都放在主函数中利用以下函数进行求解:aij = aij - (aik / akk) * akj;迭代:xn = ann + 1 / ann;for(i = n - 1;i = 1;i -)sum = 0.0;for(j = n;j = i + 1;j -)sum = sum + aij * xj;/cout sum endl;xi = (ain + 1 - sum) / aii;(3)原代码:#include#include #include #define N 1000 using namespace std;double aNN;double bN;int main()int n,i,j,k; double m; double xN;printf(”*Gauss 消元法*:nn); while(printf(”输入矩阵的阶数:)scanf(%d,&n);printf(输入增广矩阵:n);for(i=1;i=n;i+)for(j=1;j=n;j+)scanf(%lf,&aij); ;scanf(%lf,&bi);for(i=1;in;i+)for(k=i+1;k=n;k+)m=aki*1/aii*1;for(j=i;j=n;j+)akj= akj-aij*m;bk= bk-bi*m*1;printf(”经过第d大步后增广矩阵为:n,i);for(int l=1;l=n;l+)for(j=1;j0;i-)double sum=0;for(j=i+1;j=n;j+)sum =sum+aij*xj*1;xi=(bi-sum)*1/aii*1;printf(”线性方程组的解为:n);for(i=1;i=n;i+)if(xi=0)xi=abs(xi);printf(x%d=%fn,i,xi);return 0;三 实验截图实验结果分析:消去第k个元素时,对矩阵作加法和乘法各(n-k) * (n-k)次,除法运算(n-k)次, 对右端作加法和乘法各(n-k)次,加法和乘法运算分别各n*(n-l)*(n-l/2)/3和n*(n-l)/2 次,消元时还有n*(n-1)/2次除法运算,另外回代过程加法和乘法运算各n*(n-1)/2,除法 运算 n 次。可以看出,主要的计算量值是在消元过程中对系数矩阵所做,乘法和加法各约n*n*n/3 次,而对右端项消元过程和回代过程所用运算量皆为n*n/2,总共n*n次乘法和加法运算。 在变矩阵为上三角形矩阵的过程中,要进行一系列的四舍五入,在计算机中进行运算 时就 会出现大量的舍入误差,因此对于有些方程求不出准确解只能求得近似解。此方法只是最一 般的算法,还有待于进一步优化。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!