4.13 求广义逆的奇异值分解法 ginv.c
来自「许士良常用算法程序集C语言,包括c++一些常用算法代码」· C语言 代码 · 共 29 行
C
29 行
#include "4muav.c"
int ginv(a,m,n,aa,eps,u,v,ka)
int m,n,ka;
double a[],aa[],u[],v[],eps;
{
int i,j,k,l,t,p,q,f;
i=muav(a,m,n,u,v,eps,ka);
if (i<0) return(-1);
j=n;
if (m<n) j=m;
j=j-1;
k=0;
while((k<=j)&&(a[k*n+k]!=0.0)) k=k+1;
k=k-1;
for (i=0; i<=n-1; i++)
for (j=0; j<=m-1; j++)
{
t=i*m+j; aa[t]=0.0;
for (l=0; l<=k; l++)
{
f=l*n+i; p=j*m+l; q=l*n+l;
aa[t]=aa[t]+v[f]*u[p]/a[q];
}
}
return(1);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?