论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > VC >

B(VC)C++矩阵

4用投入产出模型规划小流域——动态投入产出模型 paper51.com

4.1模型的求解 paper51.com

为了得到投入产出模型的解,为了该结果有意义、贴近实际经济生活,许多经济学家和数学家都做了大量的工作和尝试,采用多种数学手段,包括比较简单的数值逼近、模糊数学、神经网络等手段。张金水教授在提出非线性动态投入产出模型的同时也给出了简便易懂的计划方法,,利用大道定理,给出有意义的经济解,这样扩大了投入产出技术的应用。 copyright paper51.com

为了获得小流域土地资源的最佳配置,根据当地的自然经济条件、农业产业结构、人口状况等为条件。在保护生态环境的前提下,以谋求经济最大化为发展目标,建立数学模型。教学模型结构如下:   

内容来自论文无忧网 www.paper51.com

                     B Xt = ( I – C + B )X - Y paper51.com

其中:I为已知单位矩阵;     C为已知消耗系数矩阵;    B为已知投资系数矩阵;   X为已知最终产品向量;  Y为已知净产品向量。

内容来自www.paper51.com

决策变量与约束条件 内容来自www.paper51.com

小流域的土地利用类型以农耕地,林地,牧草地,水域,居民住房用地,道路为主,土地利用结构调整主要涉及到农耕地,林地,牧草地,因此在选取决策变量时,重点考虑这些用地类型,它们对应的主要经济活动有种植各种作物,森林管理,牧草地管理等,不同的土地利用类型对环境造成的影响不同,如水土流失,因此,在选取决策变量时要充分反映小流域内土地利用类型及土地利用方式,各种农业经济活动对环境造成的影响,小流域土地规划的约束条件一般由土地利用方式约束,经济约束,水资源约束,劳动力约束和水土流失约束等,根据小流域的自然,经济状况对小流域内的耕地,林地,牧草地等作原则性的安排,经济约束包括粮食约束,经济林约束,肥料约束等,在收集已有资料和重点调查的基础上建立各自的约束方程。根据当地水资源的状况,不同土地利用方式对水资源的利用差异,建立水资源约束方程,根据流域内人口状况,不同土地利用方式的投入劳力数量,建立劳动力约束方程,根据小流域的土壤侵蚀标准,不同土地利用方式的侵蚀模数建立水土流失方程。 copyright paper51.com

例子:

内容来自论文无忧网 www.paper51.com

BXt = ( I – C +B )X - Y 内容来自www.paper51.com

其中:I为已知单位矩阵;         C为已知消耗系数矩阵;    B为已知投资系数矩阵;   copyright paper51.com

X为已知最终产品向量;     Y为已知净产品向量。

内容来自论文无忧网 www.paper51.com

已知:

内容来自www.paper51.com

I= 1   0    0              C=  0.01   0     0          B=0.1   0.2   0.1 copyright paper51.com

   0   1    0                 0      0.04  0            0.3   0.5   0.7

http://www.paper51.com

   0   0    1                 0     0    0.02         1.4   1.5   0.1

paper51.com

X = 1020.5                  Y = 1021.63     求:Xt= ?

内容来自论文无忧网 www.paper51.com

    568.63                      544.23 paper51.com

    563.96                      583.23 http://www.paper51.com

其中:

内容来自www.paper51.com

C表示农耕地,林地,牧草地三种地的 经济,水资源,劳动力三种资源消耗系数 内容来自论文无忧网 www.paper51.com

B表示农耕地,林地,牧草地三种地的 经济,水资源,劳动力三种资源投资系数

http://www.paper51.com

X表示经济,水资源,劳动力三种资源的最初的利用情况 内容来自www.paper51.com

Y表示经济,水资源,劳动力三种资源三年中某一年的利用情况 http://www.paper51.com

Xt表示Y中某一年的下一年经济,水资源,劳动力三种资源规划利用情况

内容来自www.paper51.com

解:由矩阵的加、减法可得N:        由矩阵的求逆可得B-1: 

内容来自www.paper51.com

    N = I – C + B = 1.090     0.2     0.1       B-1  = 0.1   0     0.1

paper51.com

                    0.3      1.46    0.7           1.4   1     0.1

http://www.paper51.com

                    1.4      1.5    1.08          0.3   0     0.7 内容来自论文无忧网 www.paper51.com

由矩阵的乘法可得P:           由矩阵的加、减法可得Q: http://www.paper51.com

P= N * X =1282.467                          Q = P – Y = 260.837

paper51.com

          1531.122                                      986.892 内容来自www.paper51.com

          2890.722                                      2307.492

http://www.paper51.com

计算结果: 内容来自论文无忧网 www.paper51.com

Xt = 256.833

内容来自www.paper51.com

1582.813

内容来自www.paper51.com

     1693.492 内容来自论文无忧网 www.paper51.com

4.2用C++程序语言实现 copyright paper51.com

#include <math.h>

paper51.com

#include<stdio.h> 内容来自论文无忧网 www.paper51.com

#include<stdlib.h> copyright paper51.com

#define  nearzero 1.0E-20 内容来自www.paper51.com

voidMatPrint(float * m1, int m, int n, char * matname) paper51.com

{ copyright paper51.com

    int i; int j; paper51.com

    printf("%s\n",matname); 内容来自www.paper51.com

    printf("\n");

paper51.com

    for(i=0; i<=m-1; ++i){ copyright paper51.com

        for(j=0;j<=n-1; ++j){

paper51.com

            printf("%10.3f", m1[i*n + j]);

copyright paper51.com

        } http://www.paper51.com

        printf("\n"); copyright paper51.com

    } 内容来自www.paper51.com

    printf("\n");

内容来自www.paper51.com

}

paper51.com

voidMatProd(float * m1,float * m2,int l,int m, int n,float * m3) 内容来自www.paper51.com

{

内容来自论文无忧网 www.paper51.com

    int i,j,k;

http://www.paper51.com

    for(i=0; i<=l-1; ++i){ 内容来自www.paper51.com

       for(j=0;j<=n-1; ++j){ paper51.com

           m3[i * n + j] = 0; paper51.com

           for(k=0; k <= m-1; ++k){

内容来自论文无忧网 www.paper51.com

              m3[i * n+j] = m3[i * n + j] +m1[i * m + k] * m2[k * n + j] ; 内容来自www.paper51.com

           } paper51.com

       }

http://www.paper51.com

       } copyright paper51.com

}

内容来自www.paper51.com

voidMatAdd(float * m1,float * m2,int numrow,int numcol, float * m3)

http://www.paper51.com

{ copyright paper51.com

    int i,j;

内容来自论文无忧网 www.paper51.com

    for(i=0; i<=numrow-1;++i){

copyright paper51.com

        for(j=0;j<=numcol-1; ++j){ copyright paper51.com

              m3[i * numcol+j] = m1[i * numcol+j] +m2[i * numcol+j]; 内容来自论文无忧网 www.paper51.com

        }

copyright paper51.com

    }

copyright paper51.com

}

内容来自论文无忧网 www.paper51.com

voidmatswap(float * s1,float * s2)

paper51.com

{ 内容来自www.paper51.com

     float temp;

内容来自www.paper51.com

     temp=(*s1); paper51.com

     (*s1)=(*s2);

copyright paper51.com

     (*s2)=temp;

copyright paper51.com

} copyright paper51.com

voidMatInvert(float * matdate,int numcol, float * det,float * invary)

copyright paper51.com

{ 内容来自论文无忧网 www.paper51.com

    int * pivlst; 内容来自论文无忧网 www.paper51.com

    char * pivchk; 内容来自www.paper51.com

    inti,j,k,l,lecol,ll,piv,t,leval,lerow; paper51.com

    pivlst = (int * ) calloc(50 *2,2); http://www.paper51.com

    pivchk = (char * ) calloc(50,1); 内容来自www.paper51.com

    (* det)=1; 内容来自www.paper51.com

    for(i=0; i<=numcol-1;++i){

paper51.com

        pivchk[i]=0;

paper51.com

        for(j=0;j<=numcol-1; ++j){

内容来自论文无忧网 www.paper51.com

         invary[i*numcol+j]=matdate[i*numcol+j]; 内容来自论文无忧网 www.paper51.com

        } copyright paper51.com

    } http://www.paper51.com

    for(i=0; i<=numcol-1;++i){ 内容来自www.paper51.com

        leval=0;

copyright paper51.com

        for(j=0;j<=numcol-1; ++j){ 内容来自论文无忧网 www.paper51.com

            if(!(pivchk[j])){ 内容来自www.paper51.com

              for(k=0; k<=numcol-1; ++k){  

copyright paper51.com

                 if(!(pivchk[k])){ http://www.paper51.com

                  if(fabs(invary[j*numcol+k])>leval){

http://www.paper51.com

                     lerow = j; copyright paper51.com

                     lecol=k;

内容来自www.paper51.com

                     leval=fabs(invary[j*numcol+k]);

http://www.paper51.com

                   } 内容来自www.paper51.com

                 }

http://www.paper51.com

              } copyright paper51.com

            } 内容来自www.paper51.com

        }

http://www.paper51.com

    } 内容来自论文无忧网 www.paper51.com

    pivchk[lecol]=1;

paper51.com

    pivlst[i*2]=lerow; paper51.com

    pivlst[i*2+1]=lecol; http://www.paper51.com

    if (lerow!=lecol){ 内容来自www.paper51.com

        (*det)=-(*det);

copyright paper51.com

       for(l=0; l<=numcol-1; ++l){ paper51.com

            matswap(&invary[lerow*numcol+l],&invary[lecol*numcol+l]); paper51.com

        }

http://www.paper51.com

    } copyright paper51.com

    piv =invary[lecol*numcol+lecol];

paper51.com

    (*det)=(*det)*piv;

内容来自论文无忧网 www.paper51.com

    if ((*det)>1.0e+30){

paper51.com

       (*det)=1;

内容来自www.paper51.com

    }

内容来自www.paper51.com

   invary[lecol*numcol+lecol]=1.0;

内容来自www.paper51.com

    for(l=0; l<=numcol-1;++l){

copyright paper51.com

      invary[lecol*numcol+l]=invary[lecol*numcol+l]/piv;

copyright paper51.com

    } 内容来自www.paper51.com

    for(ll=0; ll<=numcol-1;++ll){

http://www.paper51.com

        if(ll!=lecol){ http://www.paper51.com

          t=invary[ll*numcol+lecol];

http://www.paper51.com

          invary[ll*numcol+lecol]=0; http://www.paper51.com

          for(l=0; l<=numcol-1; ++l){ http://www.paper51.com

            invary[ll*numcol+l]=invary[ll*numcol+l]-invary[lecol*numcol+l]*t; 内容来自www.paper51.com

           } paper51.com

        } paper51.com

    } http://www.paper51.com

    for(i=0; i<=numcol-1;++i){

paper51.com

        l=numcol-i-1; paper51.com

        if(pivlst[l*2]!=pivlst[l*2+1]){

内容来自www.paper51.com

            lerow=pivlst[l*2];

copyright paper51.com

            lecol=pivlst[l*2+1]; http://www.paper51.com

           for(k=0; k<=numcol-1; ++k){

内容来自论文无忧网 www.paper51.com

              matswap(&invary[k*numcol+lerow],&invary[k*numcol+lecol]); paper51.com

            }

内容来自www.paper51.com

        } paper51.com

    } paper51.com

    free(pivlst); free(pivchk);

内容来自论文无忧网 www.paper51.com

}

copyright paper51.com

voidNormalizeEigenVectors(float *a,int n) 内容来自www.paper51.com

{

paper51.com

    int i,j; paper51.com

    float max;

copyright paper51.com

    for(j=0;j<=n-1;++j){

http://www.paper51.com

        max=a[j];

paper51.com

        for(i=1;i<=n-1;++i){ 内容来自www.paper51.com

            if(fabs(a[i*n+j])>fabs(max)){ http://www.paper51.com

                max=a[i*n+j]; copyright paper51.com

            }

copyright paper51.com

        } 内容来自www.paper51.com

         for(i=1;i<=n-1;++i){

内容来自论文无忧网 www.paper51.com

            a[i*n+j]=a[i*n+j]/max;

copyright paper51.com

         }

http://www.paper51.com

    }

内容来自www.paper51.com

} copyright paper51.com

------分隔线----------------------------
联系方式