2019年5月15日 星期三

C語言 例題6-2 利用 高斯-喬登 方法 Gauss-Jordan Method 求聯立方程式解

C語言 例題6-2 利用 高斯-喬登 方法 Gauss-Jordan Method 求聯立方程式解

E1 :1x1 + 0x2 +0x3 =2
E2 :0x1 + 1x2 +0x3 =0
E3 :0x1 + 0x2 +1x3 =1 

#include <stdio.h>
#include <math.h>

void solution( int a[3][4], int var );

int main()
{

    int  var, i, j, k, l, n;
 
    var=3;      //the number of variables:  x1,x2,x3
    int a[3][4]={
                {1,0,0,2},
                {0,1,0,0},
                {0,0,1,1}    };
         
    solution( a, var );
    return 0;
}


void solution( int a[3][4], int var )
{
    int k, i, l, j;
    printf("the orginal function :\n");
    for ( k = 0;k < var;k++ )
    {
        for ( i = 0;i < var;i++ )
        {
            l = a[ i ][ k ];

            for ( j = 0;j <= var;j++ )
            {
                if ( i != k )
                {
                    a[i][j]=(a[k][k]*a[i][j])-(l*a[k][j]);
                 
                }
                printf("%4d",a[i][j]);
            }
            printf("\n");
        }
        printf("----------------------\n");
    }

    printf( "\nSolutions:" );

    for ( i = 0;i < var;i++ )
    {
        printf( "\nTHE VALUE OF x%d IS %0.2lf\n", i + 1, ( float ) a[ i ][ var ] / ( float ) a[ i ][ i ] );
    }

}


輸出畫面
the orginal function :
   1   0   0   2
   0   1   0   0
   0   0   1   1
----------------------
   1   0   0   2
   0   1   0   0
   0   0   1   1
----------------------
   1   0   0   2
   0   1   0   0
   0   0   1   1
----------------------

Solutions:
THE VALUE OF x1 IS 2.00

THE VALUE OF x2 IS 0.00

THE VALUE OF x3 IS 1.00

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...