Trang 1 trên tổng số 4 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 34 kết quả

Đề tài: Chương trình giải phương trình bậc n bất kỳ

  1. #1
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Mặc định Chương trình giải phương trình bậc n bất kỳ

    Có nhiều người ,đặc biệt là các bạn sinh viên, học sinh rất quan tâm đến vấn đề này. Đó là làm thế nào có thể giải được một phương trình bậc cao với nghiệm không chẵn một chút nào ?

    Tôi đã cố công viết một phần mềm sử dụng ngôn ngữ C để giải quyết vấn đề đó.

    Đấy là một chương trình có thể giải một phương trình bâc n bất kỳ (<1000, có thể tăng lên nếu muốn), tìm ra được tất cả các nghiệm thực của phương trình đó.

    Tuy nhiên, do em mới là sinh viên năm thứ nhất khoa CNTT nên chương trình vẫn còn những điểm hạn chế ví dụ như là tốc đọ xử lý còn chưa nhanh.

    Nếu ai có nhu cầu muốn dùng thử cho biết thì em xin mời moi người download tại địa chỉ sau : http://www.mediafire.com/download.php?m3zmvm4mjmm

    Ai có ý kiến gì xin hãy comment lại cho em.
    Đã được chỉnh sửa lần cuối bởi trubavuong : 20-01-2009 lúc 02:52 PM.

  2. #2
    Ngày gia nhập
    12 2007
    Bài viết
    29

    Bạn có thể cho mình biết thuật toán dc ko ?

  3. #3
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Thuật toán cảu mình là sử dụng phương pháp Newton, hay còn gọi là phương pháp lặp nghiệm.

    Thế này nhé, công thức lặp nghiệm như sau: x = x - f(x)/f '(x)
    Đầu tiên mình khởi tạo 1 giá trị cho biến x, rồi lặp đi lặp lại. Nếu PT có nghiệm thì x sẽ hội tụ đến Xo(nghiệm), còn nếu không có nghiệm (thực) thì sẽ phân kỳ.

    Chứng minh công thức trên rất đơn giản như sau:
    f '(xo)=lim((f(x)-f(xo))/(x-xo))
    => f '(xo)---> (f(x)-f(xo)/(x-xo))
    Nếu xo là nghiệm thì f(xo)=0
    => f '(xo)---> f(x)/(x-xo)
    => f(x)/f '(xo) ---> x-xo
    => x - f(x)/f '(xo) ---> xo(nghiệm đấy)
    Thế là xong về thuật giải nhé.
    Nhưng mà để hoàn thiện chương trình này thì quan trọng nhất không phải là thuật giải mà là về kỹ thuật xử lý nghiệm, về sai số... Trước đây mình làm và coi trọng phần thuật giải nhất, cứ ngỡ là đúng thế nhưng chỉ đúng với 1 số bộ phận PT thôi (PT có nghiệm ra đẹp hoặc là những PT có nghiệm ra cách xa nhau khoảng >0.5). Sau đó mình phải chỉnh sửa liên tục những phần có liên quan đến phần sai số này mới hoàn thiện được nó như bây giờ.

    Cám ơn bạn đã quan tâm đến bài viết và chương trình của mình !
    Đã được chỉnh sửa lần cuối bởi trubavuong : 19-01-2009 lúc 08:35 PM.

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Thuật toán này là thuật toán tính nghiệm gần đúng phải ko bạn ?
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Thật ra thuật toán đúng là tìm nghiệm gần đúng và nếu coi trọng thuật toán thì đúng là chỉ tìm được nghiệm gần đúng. Thế nhưng mình đã thông qua kỹ thuật xử lý nghiệm nên nó đã trở thành tìm nghiệm "rất đúng".

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

    Mặc định Chương trình giải phương trình bậc n bất kỳ

    ủa theo như mình nhớ thì phương pháp Newton tìm nghiệm gần đúng chỉ đạt độ chính xác cao khi cho trước x 1 giá trị gần nghiệm thôi mà
    Lấy vd pt bậc 100 có nghiệm trong khoảng (0, 1) mà cho trước x giá trị ban đầu 10^9 thì ...
    bạn tự tin quá, theo mình biết thì matlab tính nghiệm pt bậc n = 1000 cũng đứng máy

  7. #7
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Tất nhiên là không thể nào đạt được độ chính xác 100% được. Đấy là mình chỉ nói như vậy thôi, bạn không thấy từ "rất đúng" mình cho vào ngoặc kép sao?

    Thật ra thì mình đã cố gắng để cho nghiệm của PT rất gần với nghiệm thực sự của PT, đặc biệt là đối với những PT có nghiệm tương đối đẹp ví dụ như nghiệm nguyên : 10; -20;...; nghiệm thập phân : 1.5; 0.0001; -3.58;... Còn với nhưng nghiệm lẻ thì rất gần giá trị thực của nó (có thể kiểm chứng độ chính xác = máy tinh)

    Lưu ý: Bản Update download trong CALBK ấy (đấy là nếu có nhu cầu)

  8. #8
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    Xin hỏi bạn trubavuong,
    chương trình chỉ giải phương trình có dạng đa thức hay là cả phương trình siêu việt
    mình hỏi vấn đề này vì trong phương pháp Newton có khoản tính toán đạo hàm
    ví dụ e^(x)=100 thì nó có giải được không
    có thể đưa code để anh em nghiên cứu không

  9. #9
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Hiện thì giải PT vẫn là PT đa thức n ẩn thôi, chứ còn để giải PT bất kỳ thì mình chưa làm(do còn hạn chế về trình độ). Thế nhưng để giải 1 loại PT nhất định ví dụ như đa thức, mũ, loga thì chắc cũng làm được. Chẳng hạn để giải riêng PT e^x=a, hay 1 lớp hàm : a^x + b^x + ... + z^x = M thì chắc ngồi cày thì cũng ok

  10. #10
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    code bạn viết trên BC hả
    sao hàm để tính toán toàn đặt là vodoi2 thế ,
    chuơng trình hơi dài nhưng disasm không khó lắm, để xem thuật toán của bạn thế nào
    đang khảo sát 2 hàm vodoi2 va hàm tron trong đó

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

  1. Cung cấp giấy ik plus, Paper One, Plus A+, Double A, Giấy Thái Lan, Giấy Bãi Bằng, bìa màu, băng dính, mica các loại
    Gửi bởi dungptvietthanh trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 07-06-2013, 04:05 PM
  2. Chung cư Đại Thanh giảm sốc 10tr/vnđ cho các căn hộ. giảm và liên tục giảm…!!
    Gửi bởi lanthanh91 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-10-2012, 10:27 AM
  3. Trả lời: 0
    Bài viết cuối: 06-08-2012, 07:01 PM
  4. Trả lời: 0
    Bài viết cuối: 04-08-2012, 03:08 PM
  5. Trả lời: 0
    Bài viết cuối: 24-05-2012, 04:04 PM

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