• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

VBClub Matrix Class - Class xử lý ma trận

Bạn muốn open source dự án mình đang phát triển để mọi người cùng theo dõi tiến độ, góp ý kiến, hổ trợ và tiếp sức thêm? Hãy đăng ký dự án mã nguồn mở của mình tại đây

Điều hành viên: Điều hành

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

VBClub Matrix Class - Class xử lý ma trận

Gửi bàigửi bởi vo_minhdat2007 » T.Năm 10/05/2012 10:57 pm

Chào mọi người,

Đây là Class Library xử lý ma trận (Matrix) đang được mình phát triển. Thực ra thì mình cũng chưa gặp nhiều khó khăn lắm, nhưng mình nghĩ đây là project rất có ích, vì không phải chỉ dùng sản phẩm end-user, mà thông qua class này các bạn đang học lập trình cũng có thể tham khảo thuật toán, phong cách, ... . Hơn nữa, khi cùng phát triển thì mọi người đều có thể thêm, góp ý và cải tiến tính năng để class này hoàn thiện và hữu ích nhất!

Dự án được làm việc trên GitHub để tiện cho cộng đồng cùng phát triển. Đây là liên kết: https://github.com/vominhdat2007/CSharp-Matrix-Class

Các bạn có nhu cầu góp ý thì cứ reply vào bài viết. Khi cần, các bạn có thể Request Pull, mình sẽ review và chấp nhận request của các bạn nếu được.

Demo một số chức năng hiện tại:

Hình ảnh

Hình ảnh




This project (and its products, codes, resources, ...) is under caulacbovb.com copyright. You can use entire or parts of this project for any purpose (including commericial purposes) without any limit. However, it should be nice if you include caulacbovb.com reference in your program.

If you find this product is useful, you can also donate us at this topic: viewtopic.php?f=2&t=10240



Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: VBClub Matrix Class

Gửi bàigửi bởi vo_minhdat2007 » T.Năm 10/05/2012 11:11 pm

Hiện tại project có một số vấn đề thế này:
- Mình chưa có thời gian làm Wiki cho project, không biết bạn nào có thể làm giúp không?
- Các bạn nếu có ý định viết bổ sung thì nên ghi trước ở đây, để tránh cùng làm trùng. Ngoài ra khi viết nên có chú thích và document cho thủ tục/hàm đầy đủ, để sau này không phải viết document sau. Ví dụ:

  1.     /// <summary>
  2.     /// Get the row-echelon form of this matrix.
  3.     /// </summary>
  4.     /// <returns>The row-echolon matrix generated from this matrix.</returns>
  5.     public Matrix getRowEchelonFormMatrix()
  6.     {
  7.         // Initialize result
  8.         Matrix result = this.Clone();
  9.  
  10.         // Initialize variables
  11.         int firstNonZeroElementIndex = 0;
  12.         int currentColumn = 0;
  13.         int nextTopRow = 0;
  14.  
  15.         while (currentColumn < result.mColCount)
  16.         { // Using Gaussian Algorithm
  17.  
  18.             { // Step 1 And 2
  19.                 firstNonZeroElementIndex = result.getFirstNonZeroElementInColumn(currentColumn, nextTopRow);
  20.  
  21.                 // Step 1: if the entire columns is 0: go to next step
  22.                 if (firstNonZeroElementIndex == -1)
  23.                 {
  24.                     currentColumn++;
  25.                     continue;
  26.                 }
  27.  
  28.                 // Step 2: Move the row to the top position
  29.                 result.argumentedInterchange(nextTopRow, firstNonZeroElementIndex);
  30.                 nextTopRow++;
  31.             }
  32.  
  33.             { // Step 3: Divide the row by that number (multiply by 1/a)
  34.                 // Only divide if the number is not 1
  35.                 if (result.mData[nextTopRow - 1][currentColumn] != 1)
  36.                     result.argumentedMultiply(nextTopRow - 1, 1 / result.mData[nextTopRow - 1][currentColumn]);
  37.             }
  38.  
  39.             { // Step 4: Subtract so all elements under the leading 1 is zero
  40.                 for (int row = nextTopRow; row < result.mRowCount; row++)
  41.                 {
  42.                     // Only subtract if the number under leading 1 is not 0 yet
  43.                     if (result.mData[row][currentColumn] != 0)
  44.                         result.argumentedAddRow(row, nextTopRow - 1, -result.mData[row][currentColumn]);
  45.                 }
  46.             }
  47.  
  48.             // Next step
  49.             currentColumn++;
  50.         }
  51.  
  52.         // Return result
  53.         return result;
  54.     }


- Mình đang tìm license thích hợp cho project này. Bạn nào rành cái này chỉ mình với.
- Có bạn nào biết cách auto-generate từ class document thành web-document giống MSDN không?


Quay về “Dự án mã nguồn mở”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách