LUP分解的C++实现
简单粗暴上代码
在这里插入代码片
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
using namespace std;
void Swap(double* a, double* b) {
//交换函数
double temp = *a;
*a = *b;
*b = temp;
}
void Swap1(int* a, int* b) {
//交换函数
int temp = *a;
*a = *b;
*b = temp;
}
double Round(double dVal, short iPlaces) {
//四舍五入保留小数位数
double dRetval;
double dMod = 0.0000001;
if (dVal < 0.0) dMod = -0.0000001;
dRetval = dVal;
dRetval += (5.0 / pow(10.0, iPlaces + 1.0));
dRetval *= pow(10.0, iPlaces);
dRetval = floor(dRetval + dMod);
dRetval /= pow(10.0, iPlaces);
return(dRetval);
}
void Input(double** A, int n) {
int i, j;
cout << "请输入A矩阵:" << endl;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j