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

Đề tài: nhờ mọi người cho ý tưởng về giải phương trình bậc n

  1. #1
    No Avatar
    hiencoi810 Khách

    Question nhờ mọi người cho ý tưởng về giải phương trình bậc n

    tớ có 1 đề C++ về class : xây dựng lớp hàm số từ đó xây dựng chương trình giải phương trình f(x)=0. Theo tớ biết thì làm gì có phương pháp giải phương trình bậc bất kì nhỉ ? mọi người giúp tớ đưa ra ý tưởng được không ? càng cụ thể càng tốt nhé

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Cơ sở giải các bài toán học đều dựa trên lý luận của toán học vì thế phụ thuộc vào độ hiểu biết sâu của bạn về Toán.
    Phương pháp giải một phương trình bất kì: không có quy tắc chung
    Đây là một số cái cho bạn
    + Phương trình bậc lẻ luôn có nghiệm
    + Phương trình bậc chẵn , cần xem xét quá ^_^!
    Để hiểu biết rõ hơn, tìm các sách về phương trình.
    Mình nhớ hồi học cấp 3 mình có cuốn sách về phương pháp giải phương trình và bất phương trình của ông thầy nào đó bên Đại Học Khoa Học Tự Nhiên viết. Có đề cập đến mấy cái công thức Newton, đẳng thức Lebnitz, chuỗi gì gì đó để giải phương trình bậc N.
    À quên, nhắc bạn một điều, người đi trước mình bao nhiêu rồi mà không có bài giải cho cái này thì đến mình chưa chắc đã giải được đâu . Trừ khi cực kì siêu sao ^^!
    None!

  3. #3
    Ngày gia nhập
    02 2007
    Nơi ở
    TP.HCM - dưới cầu SG
    Bài viết
    12

    Hàm số là gì nhỉ? Nếu theo đúng định nghĩa của nó thì có lẽ ko thể xây dựng được một lớp cụ thể cho nó vì nó chứa quá nhiều thứ, cả căn, logarit, lũy thừa, mũ... Có lẽ bạn muốn xây dựng lớp cho lớp hàm số là các đa thức bậc bất kỳ? Điều này có thể thực hiện được với một số chú ý sau:
    "Không thể tìm được nghiệm chính xác ( bằng công thức ) của một đa thức bất kỳ có bậc >=5"
    + Thực tế trong máy tính, một số nguyên/thực luôn được lưu là một dãy các bit 0/1. Như vậy hầu như luôn tồn tại sai số trong cách biểu diễn này với số thực, dù rằng sai số này có thể rất nhỏ.
    + Phương trình bậc lẻ luôn có nghiệm ( như Xcross87 đã nói ).
    + Thực tế phương trình bậc n luôn có n nghiệm ( nếu ta xét cả nghiệm phức )
    + Với phương trình bậc chẵn, với chú ý trên, ta chỉ có thể tìm nghiệm gần đúng của nó ( với sai số chấp nhận được cho trước ).
    + Máy tính giúp chúng ta rất nhiều trong việc tìm nghiệm gần đúng. Cơ sở cho việc tìm nghiêm gần đúng là các định lý về phương pháp tính ( bạn có thể đọc thêm sách về Phương pháp tính để hiểu rõ hơn ).
    + Nếu bạn ko muốn mua sách có một phương pháp rất đơn giản, dễ hiểu để tìm nghiệm gần đúng: phương pháp chia đôi. Kiến thức sau là trợ giúp toán học cho phương pháp
    - Khoảng cách ly nghiệm[kcln]: (a,b) là khoảng cách ly nghiệm của phương trình f(x) = 0 khi tồn tại duy nhất nghiệm của phương trình trong khoảng đó.
    - Có thể chứng minh rằng nếu f(a).f(b) < 0 và trong khoảng (a,b) chỉ có một nghiêm => (a,b) là kcln.
    - Nếu (a,b) là kcln, ta đi tính c = (a+b)/2 và tính f(c) khi đó ta sẽ được kcln mới (a,c) ( nếu f(b) và f(c) cùng dấu ) hoặc kcln (c, b) ( nếu f(a) và f(c) cùng dấu ).
    Lặp lại cách tính trên, ta cứ chia đôi kcln mới tìm được thì cuối cùng ta được kcln đủ nhỏ so với epsilon và ta chọn một đầu là nghiệm.
    Minh họa
    Code:
    float c = ( a + b ) / 2;
    ep = a - b ; // độ bé của khoảng
    while( ep > epsilon ) {
      if( f(c) == 0 ) ...
      else
        if( f(c)*f(a) > 0 )
          a = c;
        else
          b = c; 
    }
    Việc còn lại của bạn là tìm các khoảng cách ly nghiệm cho phương trình
    Thân!
    Nơi nào khiến anh dừng bước, nơi đó có em.

  4. #4
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    À whoru định dùng lặp đơn để tính nghiệm gần đúng ?
    Khoảng cách lí nghiệm của phương trình thường giải bằng tay. Tuy nhiên vẫn có thể giải bằng máy .
    Xét phương trình bậc lẻ :
    Dùng vòng lặp chạy 0 -> @ để tìm a : f(a) >0
    Tiếp tục cho chạy 0-> -@ để tìm b : f(b) <0
    Xét phương trình bậc chẳn.
    Vẫn Dùng vòng lặp tuy nhiên không xác định chắc chắn vị trị a,b .
    Cho duyệt 2 lần cũng từ 0 theo 2 hướng để tìm f(a),f(b) sao cho f((a).f(b) <0.

    Thế nhé Nhưng chả có gì vui

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Một phương trình bậc n luốn có số nghiệm thực nhỏ hơn n.
    Mình thấy câu hỏi của bạn đặt ra rất hay nhưng việc trả lời rất khó.Liệu bạn đã viết được chương trình giải phương trình cấp 3 và 4 chưa?

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định nhờ mọi người cho ý tưởng về giải phương trình bậc n

    Không phải đâu Alviss à. Bài giải phương trình bậc n này đúng là có giải thuật rồi, chỉ là nghiệm chỉ ở dạng gần đúng với sai số bất kì . Thường là 10^-10. Với cách giải lặp đơn của whoru như trên là xong rồi. Cậu có thể dọc thêm sách để thử với cách pp khác.

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

    Thực ra giải thuật là có rồi nhưng viết được là không phải dễ. Nó phải kết hợp rất nhiều yếu tố, đặc biệt là sai số.Ví dụ như: PT có nghiệm lớn thì sai số lớn, có nghiệm nhỏ thì sai số nhỏ, rồi lại có phương trình có nghiệm vừa lớn vừa nhỏ, cũng có khi phương trình có nghiệm lớn/nhỏ nhưng lại rất gần nhau, nếu không cẩn thận sẽ thành nghiệm kép ngay...
    Tôi đã phải chỉnh sửa rất nhiều chỗ này để có thể dung hòa tất cả các loại phương trình, các hệ số khác nhau rồi các nghiệm lớn bé nữa mới hoàn thành được.

    Tham khảo bài viết của tôi tại :
    http://forums.congdongcviet.com/show...nh+b%E1%BA%ADc
    Đã được chỉnh sửa lần cuối bởi trubavuong : 19-01-2009 lúc 07:28 PM.

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