预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共25页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

矿井通风网络论程序作业学院:矿业学院专业:安全工程姓名:雷斌学号:1208010028年级:2012级任课教师:袁梅2015年5月6日这是个5,7图,以树T={e2,e4,e6,e7}在前余树弦在后的顺序,求B1,Cf,Sf下面是我所写程序,(是用C语言写的)#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<math.h>intm,n;double**a,**b11,**b12,**zb11,**zb12,**nzb12,**c12,*C,*AA,*B,**sf,**s11,**cf,**B1;double*Q,*Z;voidCreate_Omr(intm,intn);//创建原始矩阵变量函数voidFree_mr();intbrinv(double*a,intn);voidbrmul(doublea[],doubleb[],intm,intn,intk,doublec[]);voidmain(){inti,j,M,k;intt=0;printf("输入m");scanf("%d",&m);printf("输入n");scanf("%d",&n);M=m-1;Create_Omr(m,n);//调用创建动态数组函数printf("输入起点Q[n]");for(i=0;i<n;i++)scanf("%lf",&Q[i]);printf("输入终点Z[n]");for(i=0;i<n;i++)scanf("%lf",&Z[i]);printf("<开始计算各个矩阵>\n");for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=0.0;//初始化a的值全部置0for(j=0;j<n;j++)//求关联矩阵的过程{i=(int)Q[j]-1;a[i][j]=1;}for(j=0;j<n;j++){i=(int)Z[j]-1;a[i][j]=-1;}printf("输出关联矩阵B\n");for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%3d",(int)a[i][j]);printf("\n");}printf("输入基本关联矩阵B");scanf("%d",&k);for(i=0;i<m-1;i++)/////求基本关联矩阵Bk{if(i==(k-1)){for(j=0;j<n;j++)B1[i][j]=a[k][j];t++;}elsefor(j=0;j<n;j++)B1[i][j]=a[i+t][j];}printf("输出基本关联矩阵B%d\n",k);for(i=0;i<m-1;i++){for(j=0;j<n;j++)printf("%3d",(int)B1[i][j]);printf("\n");}for(i=0;i<m-1;i++)//求B11for(j=0;j<n-m+1;j++)b11[i][j]=B1[i][j];for(i=0;i<m-1;i++)//求B12for(j=n-m+1;j<n;j++)b12[i][j-n+m-1]=B1[i][j];for(i=0;i<m-1;i++)//求-ZB11for(j=0;j<n-m+1;j++)zb11[j][i]=-(int)b11[i][j];for(i=0;i<m-1;i++)//求ZB12for(j=0;j<m-1;j++)zb12[j][i]=b12[i][j];/*从这里开始把二维数组接入一位数组,(因为动态二维数组分配的内存空间不是连续的,所以用一个一维数组记录他的数据好传给逆矩阵的调用函数)*/for(i=0;i<m-1;i++)for(j=0;j<m-1;j++){AA[i*(m-1)+j]=zb12[i][j];//这里必须给AA和B赋值我把zb12赋值给它们不然是随机数B[i*(m-1)+j]=zb12[i][j];}i=brinv(AA,M);//求逆矩阵调用函数k=0;for(i=0;i<m-1;i++)//把所求得逆矩阵,从新变成二维数组,方便C12的计算for(j=0;j<m-1;j++){nzb12[i][j]=AA[k];k++;}for(i=0;i<n-m+1;i++)//这里必须给c12赋0,不然求不出c12for(j=0;j<m-1;j++)c12[i][j]=0.0;for(i=0;i<n-m+1;i++)//求c12的过程,用循环语句来计算矩阵的乘法{for(j=0;j<m-1;j++){for(k=0;k<m-1;k++){c12[i][j]=c12[i][j]+zb11[i][k]*nzb12[k][j];//矩阵的乘法}}}for(i=0;i<n-m+1;i++)/*求cf矩阵的过程*/