求人帮忙做一个LU分解的MFC小程序啊,急用!
求人帮忙做一个LU分解的MFC小程序啊,急用! --------------------编程问答-------------------- 百度一下就有了 pudn 里面多得是。。。 --------------------编程问答-------------------- #include <stdio.h>给你来一段c++的 自己建工程 实现吧
-----------------------------------------------------------------------------------------
#include <stdlib.h>
#include <time.h>
#define SIZE 10
void randomInit(float M[SIZE][SIZE]);
void outPutMatrix(float H[SIZE][SIZE]);
void creatLU(float N[SIZE][SIZE]);
float arraySum(float P[SIZE][SIZE], float Q[SIZE][SIZE], int cSmall, int cLarge);
void main()
{
float arrayA[SIZE][SIZE];
printf("初始化要进行分解的矩阵arrayA:\n");
randomInit(arrayA);
outPutMatrix(arrayA);
printf("开始分解:\n");
creatLU(arrayA);
}
void randomInit(float M[SIZE][SIZE])
{
srand(time(NULL));
for(int i=0; i<SIZE; i++)
for(int j=0; j<SIZE; j++)
{
M[i][j]=rand()%10;
}
}
void creatLU(float N[SIZE][SIZE])
{
float arrayL[SIZE][SIZE], arrayU[SIZE][SIZE];
printf("为已初始化矩阵进行LU分解:\n");
int i, j;
for(j=0; j<SIZE; j++)
{
arrayU[0][j]=N[0][j];
}
for(i=1; i<SIZE; i++)
{
arrayL[i][0]=N[i][0]/arrayU[0][0];
}
for(i=1; i<SIZE; i++)
{
for(j=1; j<SIZE; j++)
{
if(j>=i)
{
arrayU[i][j]=N[i][j]-arraySum(arrayL, arrayU, i, j);
}
else
{
arrayL[i][j]=(N[i][j]-arraySum(arrayL, arrayU, j, i))/arrayU[j][j];
}
}
}
for(i=0; i<SIZE; i++)
for(j=0; j<SIZE; j++)
{
if(i==j)
arrayL[i][j]=1;
else if(i<j)
arrayL[i][j]=0;
else if(i>j)
arrayU[i][j]=0;
}
printf("分解后的L矩阵为:\n");
outPutMatrix(arrayL);
printf("分解后的U矩阵为:\n");
outPutMatrix(arrayU);
}
float arraySum(float P[SIZE][SIZE], float Q[SIZE][SIZE], int cSmall, int cLarge)
{
float sum=0;
for(int i=0; i<cSmall; i++)
sum+=P[cSmall][i]*Q[i][cLarge];
return sum;
}
void outPutMatrix(float H[SIZE][SIZE])
{
for(int i=0; i<SIZE; i++)
{
for(int j=0; j<SIZE; j++)
{
printf("%1.1f ", H[i][j]);
}
printf("\n");
}
} --------------------编程问答-------------------- --------------------编程问答-------------------- 找找应该有现成的
补充:.NET技术 , VC.NET