解线性方程组的直接方法实验报告
(最新版)
编制人:__________________ 审核人:__________________ 审批人:__________________ 编制单位:__________________ 编制时间:____年____月____日
序言
下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!
并且,本店铺为大家提供各种类型的实用范文,如报告范文、工作总结、文秘知识、条据书信、行政公文、活动报告、党团范文、其他范文等等,想了解不同范文格式和写法,敬请关注!
Download tips: This document is carefully compiled by this shop. I hope that after downloading it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!
In addition, this shop provides you with various types of practical sample essays, such as report sample essays, work summary, secretarial knowledge, article letters, administrative official documents, activity reports, party group sample essays, other sample essays, etc. I want to understand the format and writing of different sample essays. stay tuned!
第 1 页 共 8 页
正文内容
解线性方程组的直接方法实验报告 1.实验目的:
1、通过该课题的实验,体会模块化结构程序设计方法的优点;
2、运用所学的计算方法,解决各类线性方程组的直接算法; 3、提高分析和解决问题的能力,做到学以致用; 4、通过三对角形线性方程组的解法,体会稀疏线性方程组解法的特点。 2.实验过程: 实验代码: #include \"stdio.h\" #include \"math.h\" #include
using namespace std; //Gauss法
void lzy(double **a,double *b,int n) {
int i,j,k;
double l,x[10],temp; for(k=0;k {
第 2 页 共 8 页
for(j=k,i=k;j { if(j==k)
temp=fabs(a[j][k]); else if(temp { temp=fabs(a[j][k]); i=j; } }
if(temp==0) {
cout return; } else {
for(j=k;j { temp=a[k][j]; a[k][j]=a[i][j]; a[i][j]=temp; }
temp=b[k]; b[k]=b[i]; b[i]=temp;
第 3 页 共 8 页
}
for(i=k+1;i { l=a[i][k]/a[k][k];
for(j=k;j a[i][j]=a[i][j]-l*a[k][j]; b[i]=b[i]-l*b[k]; } }
if(a[n-1][n-1]==0) {
cout return; }
x[n-1]=b[n-1]/a[n-1][n-1]; for(i=n-2;i>=0;i--) { temp=0;
for(j=i+1;j temp=temp+a[i][j]*x[j]; x[i]=(b[i]-temp)/a[i][i]; }
for(i=0;i {
printf(\"x%d=%lf \ printf(\" \"); }
第 4 页 共 8 页
}
//平方根法
void pfg(double **a,double *b,int n) {
int i,k,m;
double x[8],y[8],temp; for(k=0;k { temp=0;
for(m=0;m temp=temp+pow(a[k][m],2); if(a[k][k] return;
a[k][k]=pow((a[k][k]-temp),1.0/2.0); for(i=k+1;i { temp=0;
for(m=0;m
temp=temp+a[i][m]*a[k][m];
a[i][k]=(a[i][k]-temp)/a[k][k]; } temp=0;
for(m=0;m temp=temp+a[k][m]*y[m]; y[k]=(b[k]-temp)/a[k][k]; }
x[n-1]=y[n-1]/a[n-1][n-1]; for(k=n-2;k>=0;k--)
第 5 页 共 8 页
{ temp=0;
for(m=k+1;m temp=temp+a[m][k]*x[m]; x[k]=(y[k]-temp)/a[k][k]; }
for(i=0;i {
printf(\"x%d=%lf \ printf(\" \"); } } //追赶法
void zgf(double **a,double *b,int n) { int i;
double a0[10],c[10],d[10],a1[10],b1[10],x[10],y[10]; for(i=0;i { a0[i]=a[i][i];
if(i c[i]=a[i][i+1]; if(i>0)
d[i-1]=a[i][i-1]; }
a1[0]=a0[0];
第 6 页 共 8 页
for(i=0;i { b1[i]=c[i]/a1[i];
a1[i+1]=a0[i+1]-d[i+1]*b1[i]; }
y[0]=b[0]/a1[0];
for(i=1;i y[i]=(b[i]-d[i]*y[i-1])/a1[i]; x[n-1]=y[n-1]; for(i=n-2;i>=0;i--) x[i]=y[i]-b1[i]*x[i+1]; for(i=0;i {
printf(\"x%d=%lf \ printf(\" \"); } } int main {
int n,i,j;
double **A,**B,**C,*B1,*B2,*B3;
A=(double **)malloc(n*sizeof(double)); B=(double **)malloc(n*sizeof(double));
C=(double **)malloc(n*sizeof(double)); B1=(double *)malloc(n*sizeof(double));
第 7 页 共 8 页
B2=(double *)malloc(n*sizeof(double)); B3=(double *)malloc(n*sizeof(double)); for(i=0;i {
A[i]=(double
*)malloc((n)*sizeof(double));
B[i]=(double *)malloc((n)*sizeof(double)); C[i]=(double *)malloc((n)*sizeof(double)); } cout cin>>n;
cout for(i=0;i for(j=0;j 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务