+ Post New Thread
Results 1 to 3 of 3
  1. #1
    Advanced Member level 5
    Points: 17,793, Level: 32
    pancho_hideboo's Avatar
    Join Date
    Oct 2006
    Location
    Real Homeless
    Posts
    2,741
    Helped
    743 / 743
    Points
    17,793
    Level
    32

    Solution of Linear Equation using MATLAB

    Code:
    A = [ 1, 2, -1, -2, -3;
          2, 4,  0, -3, -1;
          1, 2,  1,  0,  1;
          3, 6, -2, -5, -7;
          2, 4, -3, -5, -8]
      
    b = [6, 7, 2, 16, 14].'
    size(A)=5x5
    rank(A)=3
    det(A)=0

    So A*x = b does not have unique solution.

    Solution x is x = d + t1*c1 + t2*c2.
    Here
    d = [5, 0, -3, 1, 0].'
    c1 = [-2, 1, 0, 0, 0].'
    c2 = [2, 0, -3, 1, 1].'
    t1 and t2 are any values.

    How can I get this solution by MATLAB ?

    Solution by pseudo inverse matrix of A gives following.
    Code:
    pinv(A)*b 
    =>
        0.5932
        1.1864
        0.0508
       -0.0169
       -1.0169
    Last edited by pancho_hideboo; 28th December 2019 at 16:15.

    •   AltAdvertisement

        
       

  2. #2
    Advanced Member level 5
    Points: 17,793, Level: 32
    pancho_hideboo's Avatar
    Join Date
    Oct 2006
    Location
    Real Homeless
    Posts
    2,741
    Helped
    743 / 743
    Points
    17,793
    Level
    32

    Re: Solution of Linear Equation using MATLAB

    General solution can be given as following.
    Code:
    x = pinv(A)*b + (eye(5)-pinv(A)*A)*[t1,t2,t3,t4,t5].’
    https://en.wikipedia.org/wiki/Moore–Penrose_inverse



    •   AltAdvertisement

        
       

  3. #3
    Advanced Member level 5
    Points: 17,793, Level: 32
    pancho_hideboo's Avatar
    Join Date
    Oct 2006
    Location
    Real Homeless
    Posts
    2,741
    Helped
    743 / 743
    Points
    17,793
    Level
    32

    Re: Solution of Linear Equation using MATLAB

    Quote Originally Posted by pancho_hideboo View Post
    General solution can be given as following.
    Code:
    x = pinv(A)*b + (eye(5)-pinv(A)*A)*[t1,t2,t3,t4,t5].’
    https://en.wikipedia.org/wiki/Moore–Penrose_inverse
    Code:
    d = pinv(A)*b % particular solution
    c = eye(size(A, 2)) - pinv(A)*A % homogeneous solutions
    fprintf( 2, 'rank(c)=%d\n', rank(c, 1e-5) );
    R = rref(c) % reduced row echelon form
    
    t = randn(size(c, 2), 1);
    x = d + c*t; % general solution for inhomogeneous equation
    fprintf(1, 'A*x-b'), A*x-b
    gives followings.
    Code:
    d =
        0.5932
        1.1864
        0.0508
       -0.0169
       -1.0169
    
    c =
        0.8136   -0.3729   -0.1017    0.0339    0.0339
       -0.3729    0.2542   -0.2034    0.0678    0.0678
       -0.1017   -0.2034    0.7627   -0.2542   -0.2542
        0.0339    0.0678   -0.2542    0.0847    0.0847
        0.0339    0.0678   -0.2542    0.0847    0.0847
    
    rank(c)=2
    
    R =
        1.0000         0         0   -0.4687    0.0260
             0    1.0000         0   -0.9375    0.0521
             0         0    1.0000   -0.6458   -0.3160
             0         0         0         0         0
             0         0         0         0         0
    
    A*x-b
    ans =
      1.0e-013 *
       -0.0178
       -0.1243
       -0.0533
       -0.0355
             0
    c(homogeneous solutions) are not independent.

    Code:
    M = [A, -b]; % augmented matrix
    
    ZR = null(M, 'r') % rational basis for the null space
    d = ZR(1:end-1, end) % particular solution
    c = ZR(1:end-1, 1:end-1) % homogeneous solutions
    
    t = randn(size(c, 2), 1);
    x = d + c*t; % general solution for inhomogeneous equation
    fprintf(1, 'A*x-b'), A*x-b
    gives followings.
    Code:
    ZR =
        -2     2     5
         1     0     0
         0    -3    -3
         0     1     1
         0     1     0
         0     0     1
    
    d =
         5
         0
        -3
         1
         0
    
    c =
        -2     2
         1     0
         0    -3
         0     1
         0     1
    
    A*x-b
    ans =
      1.0e-014 *
             0
       -0.0888
       -0.0222
       -0.1776
       -0.1776
    These d and c are coincident with theoretical solutions.



--[[ ]]--