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

Đề tài: Tính hàm sin(x), cos(x), ln(x) và e^x bằng phương pháp Taylor?

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

    Mặc định Tính hàm sin(x), cos(x), ln(x) và e^x bằng phương pháp Taylor?

    Sửa dùm mình đoạn code tính hàm LN(x) và e^x nhé!mình thử nhưng kq ko như mong đợi (ko đúng).thanks U nha!
    Code:
    #include<stdio.h>
    #include<math.h>
    
      unsigned long gt(int n)
           {
                    int i;
                    unsigned p=1;
                    for(i=1;i<=n;i++)
                    p*=i;
                    return p;
                    }
    
    
    double SIN(double x,int n)     
       /*khai trien taylor((-1)^n*x^(2n+1)/(2n+1)!*/
    {
           double s=0;
           int i;
           x*=M_PI/180;
           for (i=0;i<=n;i++)
           s+=pow(-1,i)*pow(x,2*i+1)/gt(2*i+1);
           return s;
           }
           
    double COS(double x,int n)         /*khai trien taylor ((-1)^n*x^(2n))/2n!*/
    {
           double s=1;
           int i;
           x*=M_PI/180;
           for(i=1;i<=n;i++)
           s+=pow(-1,i)*pow(x,2*i)/gt(2*i);
           return s;
           }       
         
    double E(double x,int n)         /*khai trien taylor x^k/k!(k=0-->n)  */
    {
           double s=0;
           int i;
           for(i=1;i<=n;i++);
           s+=pow(x,i)/gt(i);
           return s;
           }   
    
    double LN(double x,int n)         /*khai trien taylor ((-1)^n*x^(2n))/2n!*/
    {
           double s=0;
           int i;
           x*=M_PI/180;
           for(i=0;i<=n;i++)
           s+=pow(-1,i)*pow(x,2*i)/gt(2*i);
           return s;
           }
               
              
    main()
    {
         float x;
         int n;
         printf("Nhap gia tri x de tinh sin(x):\n");
         scanf("%f",&x);     
         printf("Nhap gia tri n:\n");scanf("%d",&n);
         printf("sin(%f)=%3.9f\ncos(%f)=%f\nln(%f)=%3.9f\n",x,SIN(x,n),x,COS(x,n),x,LN(x,n));
         printf("E^(%f) =%f",x,E(x,n));
         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

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

    hàm e^x và ln(x) Kq cũng ra nhưng mọi người thử coi sao hàm ln(x) chỉ tính -1<x<1 thôi còn ngoài đoạn này sai.Để tính đúng đc hết các giá trị mình nghĩ hơi vất vả...


    Code:
    double E(double x,int n)         /*khai trien taylor x^k/k!(k=0-->n)  */
    {
           double s=0;
           int i;
           for(i=0;i<=n;i++)
           s+=pow(x,i)/gt(i);
           return s;
           }   
    
    float LN(float x,int n)         /*khai trien taylor ((-1)^(n-1)*(x-1)^(n))/n*/
    {
           float s=0;
           int i;       
           for(i=1;i<=n;i++)          
           s+=pow(-1,i-1)*pow(x-1,i)/i;
           return s;
           }
    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

  3. #3
    Ngày gia nhập
    12 2008
    Bài viết
    8

    bạn quân stupid quá xem lại đi quân chó heeeeeeeeeeee

    QHQPTB

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

    hix!thế thì làm đi ku..hơi khó đấy!cũng phải giành tg để học môn khác chưa làm đc.Để lúc khác làm nốt.Làm bt xác xuất thống kê đi mai thầy chữa bt đấy kuku.
    ko thì xác định học lại rùi
    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

  5. #5
    Ngày gia nhập
    12 2008
    Bài viết
    8

    heeeeeeee cần anh send cho ko? mèo giúp tao rồi

    QHQPTB

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

    Mặc định Tính hàm sin(x), cos(x), ln(x) và e^x bằng phương pháp Taylor?

    Bạn phải viết bạn thử với ví dụ như thế nào kết quả sai là gì ?
    Kết quả đúng phải là như thế nào ?. Thử tham khảo bài này coi
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <math.h>
    4.  
    5. int menu()
    6. {
    7.   int c;
    8.   printf("\n----------------- Menu ---------------------\n");
    9.   printf("\n1. Tinh  e^x = 1 + x/1! + x^2/2! + ... + x^n/n! + ... \n");
    10.   printf("\n2. Tinh  sin(x) = x - x^3/3! + x^5/5! + ... + (-1)^n*x^(2n+1)/(2n+1)! + ..\n");
    11.   printf("\n3. Tinh  cos(x) = 1 - x^2/2! + x^4/4! -... + (-1)^n*x^2n/(2n)! + ... \n");
    12.   printf("\n4. Tinh  l(x) = (x-1)-(x-1)^2/2 + (x-1)^3/3 -...+(-1)^n*(x-1)^(n+1)/(n+1) +...\n");
    13.   printf("\n0. Thoat");
    14.   printf("\n\n--------------------------------------------");
    15.   printf("\nChon muc : ");
    16.   do {
    17.      c = getch();
    18.      }while (c>'4'||c<'0');
    19.      putc(c, stdout) ;
    20.      return c - '0';
    21. }
    22.  
    23. void emux()
    24. {
    25.   float x,e,S,gt;
    26.   int i;
    27.  
    28.   printf("\nNhap vao so thuc x = ");        scanf("%f",&x);
    29.   printf("\nNhap vao sai so epsilon = ");   scanf("%f",&e);
    30.   i=1;
    31.   S=1;
    32.   gt=1;
    33.   while (fabs(pow(x,i)/gt) >= e)
    34.     {
    35.       S=S+pow(x,i)/gt;
    36.       i++;
    37.       gt=gt*i;
    38.     }
    39.   printf("\n Tong S = %f",S);
    40.   getch();
    41. }
    42. void sinx()
    43. {
    44.   float x, s, eps, gt, t;
    45.   int i, dau;
    46.   printf("\nNhap so thuc x = ");           scanf("%f",&x);
    47.   printf("\nNhap vao sai so epsilon = ");  scanf("%f",&eps);
    48.  
    49.   s=0.0;
    50.   gt=1.0;
    51.   i=0;
    52.   dau=1;
    53.   while (fabs(pow(x,2*i+1)/gt) >= eps)
    54.     {
    55.       s = s + dau*pow(x,(2*i+1))/gt;
    56.       i++;
    57.       gt = gt*(2*i)*(2*i+1);
    58.       dau=-dau;
    59.     }
    60.   printf("\nTong S = %f", s);
    61.   getch();
    62. }
    63.  
    64. void cosx()
    65. {
    66.   float x,e,S,gt,radian;
    67.   int i;
    68.   printf("\nNhap gia tri bang do cho x = ");     scanf("%f",&x);
    69.   printf("\nNhap vao sai so epsilon = ");        scanf("%f",&e);
    70.   radian=x*M_PI/180;
    71.   i=0;
    72.   S=0;
    73.   gt=1;
    74.   while (fabs(pow(radian,i)/gt) >= e)
    75.     {
    76.       S=S+pow(-1,i/2)*pow(radian,i)/gt;
    77.       i += 2;
    78.       gt=gt*(i-1)*i;
    79.     }
    80.   printf("\n Tong S = %f",S);
    81.   getch();
    82. }
    83. void lnx()
    84. {
    85.   float x, X, s, eps;
    86.   int i, dau;
    87.   printf("\nNhap so thuc x = ");            scanf("%f",&x);
    88.   printf("\nNhap vao sai so epsilon =  ");  scanf("%f",&eps);
    89.  
    90.   X=x-1;
    91.   s=0;
    92.   i=1;
    93.   dau=1;
    94.   while (fabs(pow(X,i)/i) >= eps)
    95.   {
    96.       s = s +dau*pow(X,i)/i;
    97.       i++;
    98.       dau=-dau;
    99.       }
    100.   printf("\n Tong S = %f",s);
    101.   getch();
    102.  
    103. }
    104. void main()
    105. {
    106.   int chon;
    107.   do
    108.   {
    109.     chon=menu();
    110.     switch (chon)
    111.     {
    112.        case 1 : emux();         break;
    113.        case 2 : sinx();         break;
    114.        case 3 : cosx();     break;
    115.        case 4 : lnx();      break;
    116.     }
    117.   } while (chon!=0);
    118. }

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

    Sao mình nhập x(ngoại trừ nhập 30),thì báo lỗi:Floatinf point error:Overflow.
    Abnomal program termination.
    Hãy trả lời giúp mình?Cảm ơn!

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

  1. Hàm trong C công thức taylor
    Gửi bởi Creepy trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 02-11-2013, 11:20 PM
  2. Bài tập C++ Tính Sin Cos bằng Taylor hiện kết quả sau dấu phẩy 100 số
    Gửi bởi MrKem trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 24-05-2013, 08:16 PM
  3. Sin(x) theo Taylor
    Gửi bởi langtupro07 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 12-04-2013, 10:14 PM
  4. Lập trình C | tính cos theo Taylor, làm sao sửa lỗi?
    Gửi bởi tung061288 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 08-07-2009, 10:16 PM
  5. Tính sin theo chuỗi Taylor có lỗi, cần giúp đỡ
    Gửi bởi mrnorthrain trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 28-11-2006, 01:45 AM

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