Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: tính tích phân xác định bằng phương pháp hình thang

  1. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    quan binh thanh
    Bài viết
    36

    Mặc định tính tích phân xác định bằng phương pháp hình thang

    chương trình này mình chạy được rồi.nhưng lệnh pow mình không hiểu xin các anh chỉ y nghỉa của nó.thank you.




    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    # define n 1e5
    float a,b,h,y,x,tp;
    long int i;
    void main()
    {
    printf("CHUONG TRINH TICH PHAN CUA HAM THEO PHUONG PHAP HINH THANG");
    printf("\n y=x^2+2");
    printf("\n can lay tich phan:");
    printf("\n can duoi:");
    scanf("%f",&a);
    printf("\n can tren:");
    scanf("%f",&b);
    h=(b-a)/n;
    tp=0;
    for (i=1;i<=n-1;i++)
    {
    x=a+h*i;
    tp=tp+pow(x,2)+2;
    }
    tp=2*tp;
    tp=tp+pow(a,2)+pow(b,2)+4;
    tp=h*tp/2;
    printf("\n %4.3f",b);
    printf("\n tich phan cua ham =%5.3f",tp);
    printf("\n ");
    printf("\n %4.3f",a);
    }

  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Mặc định Hàm pow(x,p)

    Hàm pow(x,p) là Hàm kiểu double, đối x là kiểu double, đối p cũng là kiểu double, hàm này trả vê giá trị x mũ p. bạn có thể khai báo float x,p; cũng có thể p là kiểu int cũng được vì C cho ép kiểu.
    Có Bạn nào biết ép kiểu không. chỉ mình với.
    Đã được chỉnh sửa lần cuối bởi trungkien45 : 20-03-2009 lúc 07:33 PM.

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    quan binh thanh
    Bài viết
    36

    cảm ơn bạn he.

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

    Các bác giúp em code tính tích phân xác định bằng phương pháp parabol được ko ạ?

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

    Cho hỏi tý. Tính tích phân ở đây là tính tích phân gì thế ? Tích phân hàm bất kỳ à? Nếu tích phân của hàm cho trước hay là của đa thức thì không có gì là đặc biệt cho lắm.

  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    quan binh thanh
    Bài viết
    36

    Mặc định tính tích phân xác định bằng phương pháp hình thang

    cái gì mà không đặc biệt, bản thân phương pháp hình thang là từ toán đưa ra, phai biết thuật toán, mới viết được chứ

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    3

    Mặc định Cho em thuật toán của phương pháp hình thang cái em mới học C nên chưa hiểu đc cái code kia

    Cho em thuật toán của phương pháp hình thang cái em mới học C nên chưa hiểu đc cái code kia

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

    Trích dẫn Nguyên bản được gửi bởi iniesta2 Xem bài viết
    Cho em thuật toán của phương pháp hình thang cái em mới học C nên chưa hiểu đc cái code kia
    http://en.wikipedia.org/wiki/Trapezoidal_rule

    sai số là Công thức toán học Latex

    ngoài ra còn 1 phương pháp khác là sử dụng công thức Simpson, chính xác hơn nhưng phức tạp hơn
    http://en.wikipedia.org/wiki/Simpson%27s_rule

    sai số là Công thức toán học Latex

  9. #9
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi iniesta2 Xem bài viết
    Cho em thuật toán của phương pháp hình thang cái em mới học C nên chưa hiểu đc cái code kia
    Thuật toán hình thang tính tích phân từ x1 đến x2 dựa trên con toán tính diện tích hình thang ---> diện tích hình thang [x1, x2, f(x1), f(x2)] là (f(x1)+f(x2))*(x2-x1)/2. Nếu x là điểm giữa x1 và x2 thì công thức là f(x)*(x2-x1)

    Phương pháp: chia x2-x1 ra nhiều khoảng. Có hai cách chia, một là đặt n khoảng rồi tính khoảng (x2-x1)/n, sau đó tính từ từ từng khoảng một và tổng lại (theo tinh thần code của nguoingu); cách thứ 2 tự đặt ra khoảng rồi tính từ từ (không biết trước n). Thường thường người ta dùng công thức điểm giữa, và như thế hai hình thang ở x1 và x2 chỉ được phép tính phân nửa (đó là đoạn cuối của code nguoingu). Nêu thấy khó hiểu thì vẽ bài lên giấy mà nghiên cứu.

    Nếu bạn là người mới tập làm toán số thực thì cần lưu ý hai điểm trong code ở đàu bài này:

    for (i=1;i<=n-1;i++)
    {
    x=a+h*i; {1}
    tp=tp+pow(x,2)+2; {2}
    }
    {2} không ai tính pow(x,2) cả. Hàm pow chỉ dùng khi cần lũy thừa lớn hoặc lũy thừa biến số. Chỉ bình phương thôi thì luôn luôn dùng x*x.

    {1} nếu n là số lớn, khả năng sai số của x khi tiến về x2 khá cao. Trên thực tế người ta làm như thế này

    C Code:
    1. // code tính hàm f
    2. double f(double x)
    3. { return x*x + 2.; }
    4.  
    5. // code tính tích phân
    6. double dx = (x2-x1)/n; // hoăc đặt đại = 1E-5 (0.00001) chẳng hạn
    7.  
    8. double x = x1;
    9. double tp = (f(x1) + f(x2)) * dx / 2.;
    10. doulbe lm = x2-(dx/2); // giới hạn mức cuối cùng của x, nếu muốn ít sai số thì dùng con toán phức tạp hơn
    11. while ((x += dx) <= lm) tp += f(x) * dx;

    tb. đáng lẽ có thể viết thẳng hàm tính diện tích, tức là hàm double fxdx(double x, double dx)
    Nhưng ở đây tôi viết riêng là vì người ta có thể dùng con trỏ hàm để tính tích phân nhiều hàm khác nhau.
    Đã được chỉnh sửa lần cuối bởi VoTichSu : 27-10-2011 lúc 01:18 PM. Lý do: code tính hình thang trước đó quên nhân cho dx

  10. #10
    Ngày gia nhập
    10 2008
    Nơi ở
    Quảng Trị
    Bài viết
    369

    Có ai có công thức tính tích phân kép bằng phương pháp hình thang không, cho mình xin với. Mình đang cần gấp lắm. :-s

    Cảm ơn nhiều!
    Đã được chỉnh sửa lần cuối bởi nguyenbinh07 : 28-10-2011 lúc 09:48 PM.
    Born to walk against the wind... Born to hear my name...
    Stand and fight... Live by your heart...
    Always one more try... I'm not afraid to die...
    Stand and fight... say what you feel...
    Born with a heart of steel ...

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