解线性方程组的完整代码

// Det.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#define M 10//矩阵大小
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
float  hanglieshi(float array[M][M])
{//计算行列式
   float temp[M][2*M];
   int i,j,c,c1;
   float result=0,t=1;
   for(i=0;i<M;i++)
   {//构造临时矩阵,用来计算行列式
      for(j=0;j<2*M;j++)
      {
          temp[i][j]=array[i][j%M];
      }
   }
   for(c1=0;c1<M;c1++)
   {//计算正值
      i=0;
      j=c1;
      t=1;
      for(c=0;c<M;c++)
      {
         t*=temp[i][j];
         i++;
         j++;
      }
      result+=t;
   }
   for(c1=0;c1<M;c1++)
   {//计算负值
      i=M-1;
      j=c1;
      t=1;
      for(c=0;c<M;c++)
      {
          t*=temp[i][j];
          i--;
          j++;
      }
      result-=t;
   }
   return result;
}
void init(float array[M][M])
{//初始化矩阵,用随机值填充矩阵
   int i,j;
   float m=3.0;
   //randomize();
   for(i=0;i<M;i++)
      for(j=0;j<M;j++)
         array[i][j]=rand()%20000;
}
void output(float array[M][M])
{//输出矩阵
   int i,j;
   for(i=0;i<M;i++)
   {
      printf("\n\n");
      for(j=0;j<M;j++)
          printf("%4f",array[i][j]);
   }
}
//非齐次方程
bool jieXianXingFangCheng(float xishu[M][M+1],float fangChengjie[M])
{
	//函数所占用的空间量应该动态fenp
	float D[M][M];
	float Dn[M][M];
	//根据克莱姆法则,求得D
	for(int i=0;i<M;i++)
			for(int j=0;j<M;j++)
			{
				D[i][j]=xishu[i][j];	
			    Dn[i][j]=xishu[i][j];	
			}
			if(hanglieshi(D)==0)return false;
    float tempVect[M];
	//下面求解:
    for(int m=0;m<M;m++)
	{	//替换第m列的值
		for(i=0;i<M;i++)
		{
            tempVect[i]=Dn[i][m];
		    Dn[i][m]=xishu[i][M];
			
		}
		fangChengjie[m]=hanglieshi(Dn)/hanglieshi(D);
		for(i=0;i<M;i++)
		{
            Dn[i][m]=tempVect[i];	
		}
		cout<<fangChengjie[m]<<endl;
	}
}
void main()
{
   float xishu[M][M+1];
   float fangchengjie[M];
   for(int i=0;i<M;i++)
   {
   for(int j=0;j<M;j++)
   {
	   if(i!=j)xishu[i][j]=0;
	   else xishu[i][j]=1;
   }
   }
   for(i=0;i<M;i++)
	   xishu[i][M]=1;
   jieXianXingFangCheng(xishu,fangchengjie);
  // float array[M][M];
 //  clrscr();
  // init(array);
  // output(array);
  // printf("\n%d",hanglieshi(array));//输出矩阵行列式的值
}

 以上代码求解M维线性方程组

模糊数学在工程技术、管理科学、金融工程等领域应用中的很多问题都可以用模糊方程和模糊线性系统来描述。 但是,实现模糊方程和模糊线性系统的求十分困难,对求方法的研究一直以来都是重点,也是难点。 无论从理论研究还是从实际应用的角度来说,对模糊方程和模糊线性系统的求研究都具有重要意义。 本文针对传统方法求模糊方程和模糊线性系统在模糊数运算、隶属函数析表示、模糊判定等方面存在的困难,借助模糊结构元理论,相应地提出了一套模糊方程和模糊线性系统的求方法。首先,利用两个单调函数的自反单调变换构造了等式限定算子,推广了等式限定运算,处理了存在负模糊情况下关于乘法运算的不可逆问题。 并将等式限定运算思想应用到求模糊线性方程中,给出了模糊的结构元表示方法和存在的充要条件。同时,推广了模糊线性方程,研究了更一般的双重模糊线性方程。此外,还研究了关于矩形复模糊数和圆楔形复模糊数线性方程的求问题。 其次,定义了幂模糊数和幂模糊数方程,基于结构元方法研究了幂模糊数运算和幂模糊数方程的求。同时,实现了一元二次模糊方程的求,利用区间[-1,1]上的单调函数将一元二次模糊方程的求问题转化为二元二次参数方程组的求问题,给出了二次模糊方程存在的充要条件,并辅以数值例子。 最后,利用结构元技术提出了模糊线性系统的求方法,给出了模糊存在的充要条件,并辅以实例计算。由于该求方法是借助[-1,1]上关于y轴对称的单调函数实现的,结果表明在存在的判定上优于Embedding法。 同时,管理毕业论文www.yifanglunwen.com [-1,1]还研究了一类由模糊结构元线性生成的模糊线性系统,其求特点是可转为经典线性系统,避免了参数的讨论。本文提出的模糊方程和模糊线性系统的结构元求方法,极大地简化了模糊数运算的困难,实现了模糊的判定和析表达,为模糊数学基础理论问题的研究以及实际问题中的应用与推广奠定了基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值