浙江工业大学数值计算方法实验2.docx_第1页
浙江工业大学数值计算方法实验2.docx_第2页
浙江工业大学数值计算方法实验2.docx_第3页
浙江工业大学数值计算方法实验2.docx_第4页
浙江工业大学数值计算方法实验2.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告一、实验目的用下列方法解线性方程1.13483.83261.16510.53013.41291.78754.93172.53308.76431.23714.999810.6721 3.40171.54351.31420.0147x1x2x3x4=9.53426.394118.423116.9237并比较计算结果精度(1)顺序消元法(2)列主元消元法二、实验方法(要求用自己的语言描述算法)l 顺序消元法本代码中是将题中矩阵转化为上三角矩阵,具体流程如下:通过双重for循环【外层for循环控制作为基准的行数,内层循环计算与基准行的倍数,并且进行行相减操作(行相减的for循环不考虑在内)】,最后通过回代求解出所有的解。l 列主元消元法本代码中在将矩阵转化为上三角矩阵的同时,事先需进行,预处理操作如下(化为上三角矩阵过程同顺序消元法):在每次操作时先找出列中绝对值最大的元素,并与基准行先进行交换。三、实验代码#include #include #include using namespace std;void display(double *a, double *b, int N);int main() /ifstream cin(input.txt);/ofstream cout(output.txt);int N;/方程的阶double max, p;int i, j, k, l;cout N & N) double *a = new double*N, *b = new doubleN;double *c = new double*N, *d = new doubleN;double *m = new double*N, *x = new doubleN;for (i = 0; i N; i+) ai = new doubleN;ci = new doubleN;mi = new doubleN;cout 请输入数组A: endl;for(i = 0; i N; i+)for (j = 0; j aij;cij = aij;cout 请输入数组B: endl;for (i = 0; i bi;di = bi;/消元计算,将方程组约化为三角形方程组for (k = 0; k = N; k+)for (i = k + 1; i N; i+) mik = aik / akk;cout mik endl;for (j = k; j = 0; i-) xi = bi;for (j = i + 1;j N;j+)xi -= aij * xj;xi /= aii;/输出方程组的解cout 方程的解为: endl;for (i = 0; i N; i+)cout x i + 1 = xi endl;cout endl;/-分割线-cout endl;for (k = 0; k N - 1; k+) max = ckk;l = k;for (i = k + 1; i fabs(max) max = cik;l = i;if (fabs(max) * 100000 1)cout det A = 0 endl;else if (l != k) /交换行p = dl;dl = dk;dk = p;for (j = 0;j N;j+) p = clj;clj = ckj;ckj = p;display(c, d, N);for (i = k + 1; i N; i+) /消元,化为三角方程组mik = cik / ckk;for (j = k;j N;j+)cij -= mik * ckj;di -= mik * dk;display(c, d, N);if (fabs(cN - 1N - 1) * 100000 1)cout det A=0 = 0; i-) xi = di;for (j = i + 1;j N;j+)xi -= cij * xj;xi /= cii;/输出方程组的解cout 方程的解依次为 endl;for (i = 0; i N; i+)cout x i + 1 = xi endl;free(a);free(b);free(c);free(d);free(m);free(x);void display(double *a, double *b, int N)for (int i = 0; i N; i+)for (int j = 0; j N; j+)cout setw(15) aij;cout setw(5) | bi endl;cout endl;四、实验结果及其讨论本题中输入部分同过文件流读入,实验结果见图1与图2。图 1图 2讨论由于本题中数据精度较低而该程序执行精度高,最后计算得出的结果相同,从结果看无法比较,但对于具体流程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论