Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Giải hệ phương trình tuyến tính Cramer [Hướng dẫn]

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    120

    Talking Giải hệ phương trình tuyến tính Cramer [Hướng dẫn]

    Nhân có 1 bạn hỏi mình về các giải hệ phương trình tuyến tính Cramer trong Đại số tuyến tính nên mình xin hướng dẫn qua về các làm nó.
    Về ý tưởng giải hệ này thì nó như sau :
    http://forums.congdongcviet.com/show...ghlight=Cramer
    Còn về lựa chọn cách giải thì mình sẽ chọn 2 cách

    Cách thứ nhất : Sử dụng ma trận nghịch đảo

    Quan trọng nhất là tìm Ma trận nghich đảo :

    PHP Code:
    void MatAlgebra(double **x,double **a)
    {
        
    int i,j,k;
        
    double Sum,m;
        
    double **b, **q;
        
    b=new double *[N+1];
        
    q=new double *[N+1];
        for (
    i=1i<=Ni++)
        {
            
    b[i] = new double [N+1];
            
    q[i] = new double [N+1];
        }
        for (
    1<= N;i++)
            for (
    1<= N;j++)
            {
                
    b[i][j] = 0;
                
    q[i][j] = a[i][j];
                if (
    == j)
                    
    b[i][j] = 1;
            }
        
    // Perform row operations
        
    for (1;<= N-1;k++)
            for (
    k+1;<= N;i++)
            {
                
    q[i][k]/q[k][k];
                for (
    1;<= N;j++)
                {
                    
    q[i][j] -= m*q[k][j];
                    
    b[i][j] -= m*b[k][j];
                }
            }

    Cách thứ hai : Sử dụng định thức trong tam giác

    //Hàm tìm định thức

    PHP Code:
    double Determinant(double **a,int n)
    {
       
    int i,j,j1,j2;
       
    double det 0;
       
    double **NULL;

       if (
    1) { /* Error */

       
    } else if (== 1) { /* Shouldn't get used */
          
    det a[0][0];
       } else if (
    == 2) {
          
    det a[0][0] * a[1][1] - a[1][0] * a[0][1];
       } else {
          
    det 0;
          for (
    j1=0;j1<n;j1++) {
             
    malloc((n-1)*sizeof(double *));
             for (
    i=0;i<n-1;i++)
                
    m[i] = malloc((n-1)*sizeof(double));
             for (
    i=1;i<n;i++) {
                
    j2 0;
                for (
    j=0;j<n;j++) {
                   if (
    == j1)
                      continue;
                   
    m[i-1][j2] = a[i][j];
                   
    j2++;
                }
             }
             
    det += pow(-1.0,1.0+j1+1.0) * a[0][j1] * Determinant(m,n-1);
             for (
    i=0;i<n-1;i++)
                
    free(m[i]);
             
    free(m);
          }
       }
       return(
    det);

    Đã được chỉnh sửa lần cuối bởi AlexF : 06-04-2009 lúc 07:17 AM.
    Đã mất công nghĩ thì nghĩ mẹ cái thật lớn vào !
    Y!H: trinhhoaithanh1905

  2. #2
    Ngày gia nhập
    03 2010
    Bài viết
    1

    ban à! sao phải tìm ma trận nghịch đảo để tính hệ phương trình đại số tuyến tính

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    523

    void MatAlgebra(double **x,double **a)
    x, a ở đây là gì? Nếu là ma trận thì phải dùng biến struct or class chứ?

Các đề tài tương tự

  1. Lập trình C Thuật toán giải hệ phương trình bằng phương pháp cramer?
    Gửi bởi rocblue0112 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 30-11-2012, 01:18 AM
  2. Code kiểm tra lược đồ quan hệ có nguy cơ xảy ra mâu thuẫn tuyến tuyến tính và phi tuyến
    Gửi bởi computerline trong diễn đàn Dự án & Source code C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 13-05-2011, 03:56 PM
  3. Bài tập C Giải hệ phương trình tuyến tính Cramer!
    Gửi bởi sontung.tran07 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 06-07-2010, 01:05 AM
  4. Cần tìm code đồ họa bài toán giải hệ phương trình tuyến tính bằng phương pháp Cramer
    Gửi bởi gaco_loveit trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-03-2009, 09:46 AM
  5. code giải hệ phương trình tuyến tính bằgn phưong pháp Cramer
    Gửi bởi nht2789 trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 10-03-2009, 09:46 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn