2.1.17.6.1 ocmath_ex_svbksb


Description

Solves linear system using singular value backsubstitution.

Syntax

int ocmath_ex_svbksb( double ** ppu, double * pw, double ** ppv, int m, int n, double * pb, double * px )

Parameters

ppu
[input]the pointer to the m by n matrix U in the standard "pointer-to-rows" form,
obtained by singular value decomposition from the LHS of a linear system.
pw
[input]the pointer to the vector W of size n,
obtained by singular value decomposition from the LHS of a linear system.
ppv
[input]the pointer to the n by n matrix V in the standard "pointer-to-rows" form,
obtained by singular value decomposition from the LHS of a linear system.
m
[input]number of rows in the original matrix
n
[input]number of columns in the original matrix.
pb
[input]pointer to a vector of size m holding the RHS of the linear system.
px
[output]pointer to a vector of size n which will on return receive the solution.

Return

Returns 0 if OK, 1 if any error, for example, the values of the vector W

are so small (by absolute value) that they cannot be divided with.

Examples

EX1

void ocmath_ex_svbksb_ex1()
{
    double dArray1[4]={2,3,5,7};
    double dArray2[4]={11,13,17,19};
    double dArray3[4]={23,29,31,37};
    double *dArrayTest1[3];
    int m = 3;
    int n = 4;
    dArrayTest1[0]= dArray1;
    dArrayTest1[1]= dArray2;
    dArrayTest1[2]= dArray3;
    double dArray4[4]={2,3,5,7};
    double dArray5[4]={11,13,17,19};
    double dArray6[4]={23,29,31,37};
    double dArray7[4]={41,43,47,49};
    double *dArrayTest2[4];
	dArrayTest2[0]=dArray4;
	dArrayTest2[1]=dArray5;
	dArrayTest2[2]=dArray6;
	dArrayTest2[3]=dArray7;
    vector vW={1,2,3,4};
    vector vb={1,2,3};
    vector vx;
    vx.SetSize(n);
    int iRet = ocmath_ex_svbksb(dArrayTest1,vW,dArrayTest2,m,n,vb,vx);
}

Remark

See Also

Header to Include

origin.h

Reference