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

Đề tài: Tính tích phân hàm f(x)

  1. #1
    No Avatar
    ghost1909 Khách

    Mặc định Tính tích phân hàm f(x)

    Tính tích phân của hàm f(x) trên đoạn [a,b] bằng phương pháp hình thang với số đoạn chia n cho trước (n được nhập từ bàn fim)??
    Rất mong nhận đc sự giúp đỡ ..keke

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    99

    Đây là code của tính tích phân
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <math.h>
    4.  
    5. enum BOOLEAN { false = 0 , true };
    6. double f(float x)
    7. {
    8.     double tri ;
    9.     double y;
    10.  
    11.     y = -x*x ;
    12.     tri = exp(y) ;
    13.     return tri ;
    14. }
    15. void main()
    16. {
    17.     int i , m , n ;
    18.     double a , b , h ,epslon ;
    19.     double s0 , s1 , s2 , i1 , i2;
    20.     enum BOOLEAN t ;
    21.  
    22.     clrscr();
    23.     printf("TICH PHAN BANG PHUONG PHAP HINH THANG    y = exp(-x*x)\n");
    24.     printf("CAN DUOI a=");
    25.     fflush(stdin);
    26.     scanf("%lf",&a);
    27.     printf("CAN TREN b=");
    28.     fflush(stdin);
    29.     scanf("%lf",&b);
    30.     printf("SAI SO epslon=");
    31.     fflush(stdin);
    32.     scanf("%lf",&epslon);
    33.     s1 = 0;
    34.     s2 = 0;
    35.     n = 1 ;
    36.     h = b - a ;
    37.     s0 = f(a) + f(b) ;
    38.     i2 = h*s0/2.0 ;
    39.     printf("TICH PHAN BANG PHUONG PHAP HINH THANG\n");
    40.     printf("CHO HAM   y = exp(-x*x)\n");
    41.     printf("TREN DOAN [a,b]=[%lf,%lf]\n" , a , b);
    42.     printf("DO LECH epslon = %12.11lf\n" , epslon);
    43.     t = false ;
    44.     do
    45.     {
    46.         i1 = i2 ;
    47.         s1 +=s2 ;
    48.         m = 2*n ;
    49.         h /=2 ;
    50.         s2 = 0 ;
    51.         for (i = 1 ; i <= n ;i++)   s2 +=f( a + (2*i -1)*h ) ;
    52.         n = m ;
    53.         i2 = h*(s0 + 2*s1 + 2*s2)/2.0 ;
    54.         if ( fabs(i2 - i1) < epslon )
    55.         {
    56.             t = true ;
    57.             printf("\tTICH PHAN    I = %12.3lf\n" ,i2);
    58.         }
    59.     } while (!t) ;
    60.     getch();
    61. }

  3. #3
    Ngày gia nhập
    02 2009
    Nơi ở
    http://toptaigamemienphi.com
    Bài viết
    76

    Mình nghĩ nên chia nhỏ ra cho dễ nhìn và dễ hiểu hơn.
    mình làm nhưng chưa test thử kết quả.hix.
    Code:
    #include<stdio.h>
    #include<math.h>
    #include<conio.h>
    
    double TP(double (*f)(double),double a,double b)
    {
           double fx,h;
           int n,i;
           printf("Nhap lam bao nhieu doan:\n");scanf("%d",&n);
           h=(b-a)/n;
           fx=(f(a)+f(b))/2;
           for (i=2;i<=n;i++)
           {
               fx+=f(a+i*h);
               }
              return fx*h; 
           }
    
    double f(double x)
    {
           double s;
           s=(pow(x,7)-x+exp(x)-log(x)+sin(x))/(3+pow(cos(x),3));
           return s;
           }
    void main()
    {
         int a,b;
         printf("Nhap doan [a,b]: \n");scanf("%d%d",&a,&b);
         printf("TP(%d,%d)=%f\n",a,b,TP(f,a,b));
         getch();
         }
    Thư viện tài liệu miễn phí
    * Không cần đăng ký thành viên
    * Tải không giới hạn tài liệu
    * Số lượng tài liệu trên 1 triệu
    * Miễn phí và không mất tiền khi tải về
    Website: http://tailieuhay.info

  4. #4
    No Avatar
    ghost1909 Khách

    Thanks cả nhà nhìu nha..^^..

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