4.10 矩阵的三角分解 lluu.c

来自「许士良常用算法程序集C语言,包括c++一些常用算法代码」· C语言 代码 · 共 47 行

C
47
字号

#include "stdio.h"
#include "math.h"
int lluu(a,n,l,u)
int n;
double a[],l[],u[];
{ 
	int i,j,k,w,v,ll;
    for (k=0; k<=n-2; k++)
    { 
		ll=k*n+k;
		if (fabs(a[ll])+1.0==1.0)
        { 
			printf("fail\n"); 
			return(0);
		}
        for (i=k+1; i<=n-1; i++)
		{ 
			w=i*n+k; a[w]=a[w]/a[ll];
		}
		for(i=k+1; i<=n-1; i++)
		{ 
			w=i*n+k;
			for (j=k+1; j<=n-1; j++)
			{ 
				v=i*n+j;
				a[v]=a[v]-a[w]*a[k*n+j];
			}
		}
    }
    for (i=0; i<=n-1; i++)
    { 
		for (j=0; j<i; j++)
        { 
			w=i*n+j; l[w]=a[w]; u[w]=0.0;
		}
        w=i*n+i;
        l[w]=1.0; u[w]=a[w];
        for (j=i+1; j<=n-1; j++)
        { 
			w=i*n+j; l[w]=0.0; u[w]=a[w];
		}
    }
    return(1);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?