1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Giúp giải hộ bài toán!

Chủ đề trong 'Toán học' bởi WJT, 02/01/2006.

  1. 0 người đang xem box này (Thành viên: 0, Khách: 0)
  1. KTY

    KTY Thành viên mới

    Tham gia ngày:
    20/03/2004
    Bài viết:
    503
    Đã được thích:
    0
    ma trận không có phép chia, chi? ma trận nghịch đa?o. Ma? ma trận nghịch đa?o thi? chi? có ma trận vuông thi? mới có thê? có. Ma trận chưf nhật thi? kiếm đâu ra ma trận nghịch đa?o vậy? Matlab chắc quên khoa?n pha?i xư? lý thế na?o nếu ngươ?i du?ng muốn tính ma trận nghịch đa?o cu?a ma trận chưf nhật
    Được KTY sửa chữa / chuyển vào 23:28 ngày 05/01/2006
  2. WJT

    WJT Thành viên mới

    Tham gia ngày:
    09/10/2005
    Bài viết:
    492
    Đã được thích:
    4
    Đúng là trong toán không có phép chia các ma trận thật! (Tại sao các nhà toán học lại không đưa phép chia vào nhỉ?) Nhưng trong Matlab thì có đấy. Matlab dùng 2 loại chia: chia trái () và chia phải (/). Nếu làm Matlab mà nhầm 2 dấu này cho nhau là hết hơi đấy.
    Bài toán của mình muốn các bạn giúp về thực chất cũng chính là đi tìm cách tự lập trình lấy phép chia trái () của Matlab thôi.
    Vì nếu tìm được x của hệ Ax=B thì cũng sẽ biết được cách tìm AB mà.
    Chẳng nhẽ các nhà toán học VN lại thua Matlab à!
    Mong các bạn tiếp tục giúp đỡ!
    WJT.
  3. KTY

    KTY Thành viên mới

    Tham gia ngày:
    20/03/2004
    Bài viết:
    503
    Đã được thích:
    0
    nó la?m phép chia thực tế la? đê? bạn gof công thức cho nhanh chứ thực tế la? tính ma trận nghịch đa?o đấy. Vi? la? phâ?n mê?m nên luôn có bug, nó không xét đến trươ?ng hợp ai đaf biết du?ng matlab lại đi tính ma trận nghịch cu?a ma trận chưf nhật.
  4. WJT

    WJT Thành viên mới

    Tham gia ngày:
    09/10/2005
    Bài viết:
    492
    Đã được thích:
    4
    -MĂnh nghĩ Matlab 'ưa ra 'n hơn bao nhiĂu lần cũng 'ược. MĂnh 'Ă chạy thử 3 ẩn v>i vĂi chục nghĂn phương trĂnh vẫn ok mĂ - vẫn ra 1 nghi?m thĂi). z 'Ăy mĂnh nghĩ Matlab 'Ă 'i tĂm 'ược 1 nghi?m hợp lĂ nhất (hay 'Ăng nhất) cho h?. ChĂnh vĂ thế mĂ mĂnh mu'n nhờ cĂc bạn bầy cho cĂch giải h? 5 phương trĂnh 3 ẩn nĂy. CĂn nếu bạn nĂo giĂp giải 'ược cho trường hợp t.ng quĂt thĂ cĂng hay!
    WJT
  5. RedNumber

    RedNumber Thành viên mới

    Tham gia ngày:
    27/10/2005
    Bài viết:
    96
    Đã được thích:
    0
    Tiếc là mình không cài Matlab. Đối với hệ pt tuyến tính bậc nhất m ẩn n pt, phương pháp chung là tìm hạng của ma trận A và A*(ma trận mở rộng, thêm cột B vào nữa).
    +Nếu rankA=min(m,n) và rankA=rankA* thì hệ có nghiệm duy nhất;
    +Nếu rankA<rankA* thì hệ vô nghiệm.
    +Nếu rankA<min(m,n) và rankA=rankA* thì hệ có vô số nghiệm
    bạn thử nhập mấy test sau xem kết quả thế nào
    T1:
    A=
    1 1 1
    1 2 1
    1 3 1
    1 4 1
    1 1 1
    B=
    1
    2
    3
    4
    5
    T2:
    A=
    1 1 1
    1 1 2
    1 2 1
    1 3 4
    1 4 5
    B=
    2
    2
    3
    4
    5
    Bạn yêu cầu đáp số rõ ràng thì không có. Trước hết phải khẳng định lại hệ có nghiệm duy nhất, tìm ra 3 phương trình độc lập tuyến tính rồi mới lấy nghiệm theo Crame được. Mà trong thực tế, sao lại cần phải đưa ra nghiệm tổng quát cơ chứ?
  6. RedNumber

    RedNumber Thành viên mới

    Tham gia ngày:
    27/10/2005
    Bài viết:
    96
    Đã được thích:
    0
    Xin lỗi, mạng bị lỗi.(post 2 lần)
    Nếu có gì sai mong được chỉ giáo
    Được RedNumber sửa chữa / chuyển vào 22:56 ngày 06/01/2006
  7. WJT

    WJT Thành viên mới

    Tham gia ngày:
    09/10/2005
    Bài viết:
    492
    Đã được thích:
    4
    Cám ơn Số đỏ!
    Mình dùng Matlab để chạy 2 hệ mà bạn cho thì kết quả như sau:
    Hệ T1= 2.3529; 0.2941; 0
    Hệ T2= 1; 1; 0
    Mình nghĩ phải giải được bài toán này chứ! Vì Matlab họ làm được mà. Còn ở đây mình cần nghiệm tổng quát để lập trình cho mọi người dùng trong nhiều trường hợp (vì không phải ai cũng có và lúc nào cũng sẵn có Matlab cả).
    WJT.
  8. RedNumber

    RedNumber Thành viên mới

    Tham gia ngày:
    27/10/2005
    Bài viết:
    96
    Đã được thích:
    0
    Thế là rõ. Matlab có vấn đề!!!
    T1 có x1+x2+x3=1 và x1+x2+x3=5 cho nên vô nghiệm. Rõ ràng là nghiệm của matlab không đúng. Do đó, cái mà matlab tìm không phải chính xác là nghiệm của hệ, mà theo mình, chỉ cho lời giải ít sai số nhất. Cái này chắc cần biết đến một lý thuyết sai số nào đó nữa.
    Còn tìm nghiệm theo cách của mình nói ở trên (thông qua tìm hạng của ma trận) thì máy làm nhanh hơn người nhiều. Bọn nó được tạo ra để con người đỡ phải làm những việc máy móc thì cứ để bọn nó làm đi
  9. WJT

    WJT Thành viên mới

    Tham gia ngày:
    09/10/2005
    Bài viết:
    492
    Đã được thích:
    4
    Đúng như Số đỏ nói, nghiệm mà Matlab đưa ra là giá trị cho Ax gần với B nhất (phần trên mình đã nói là Matlab đưa ra nghiệm hợp lý nhất mà). Vấn đề mà mình muốn các bạn tìm hộ là giải cụ thể bằng tay cho trường hợp tổng quát. Có như vậy mình mới có thể lập trình được. Còn máy tính tìm thông qua hạng của ma trận như bạn nói thì cũng chỉ là có ai đó lập trình sẵn rồi mà thôi.
    Ý nữa là cách giải hệ này (số pt nhiều hơn số ẩn) mình thấy trong sách toán có trình bầy rồi (không phải chỉ Matlab mới có). Chỉ tại mình kém toán, nhất là ma trận nên mình không hiểu và không tự làm được thôi. Chính vì thế mới mong các bạn giúp đỡ.
    WJT.
  10. hoacchuken

    hoacchuken Thành viên mới

    Tham gia ngày:
    02/10/2005
    Bài viết:
    93
    Đã được thích:
    0
    Cách giải bài toán này của em như sau:
    Đề bài A(5*3)*X(3*1)=B(5*1)
    A(5*3) tức là ma trận có 5 hàng 3 cột
    Nhân vế với vế với ma trận K(3*5), có thể cho tất cả các phần tử của K đều là 1, ta có:
    K(3*5)*A(5*3)*X(3*1)=K(3*5)*B(5*1)
    Vậy phương trình trên được rút gọn thành
    T(3*3)*X(3*1)=L(3*1)
    Vì giả thiết của bác, hệ phương trình có nghiệm (nghiệm thực), nên định thức của T (det(T)) chắc chắn # 0. Đến đây, ta có hệ 3 ẩn 3 phương trình với định thức T #0, cách giải hệ này thì ai cũng biết.
    Như vậy mục tiêu của giải bài toán n ẩn m phương trình (n<m) là biến đổi về dạng n ẩn n phương trình. Thông thường, nếu tính tay, ta sẽ biến đổi ma trận, để loại bỏ đi m-n hàng đồng dạng.
    Vì em chưa nghĩ ra cách nào để khi lập trình có thể bỏ đi một hàng toàn các phần tử bằng 0, nên đành đưa ra cách phi tiêu chuẩn này (nhân thêm ma trận n*m để đưa ma trận m*n về ma trận n*n)

Chia sẻ trang này