[Thuật toán] Tính các hàm lượng giác
Công thức tính sin(x) và các hàm lượng giác khác như sau:
VD tính sin(x) , x tính theo radian
#include <stdio.h> #include <stdlib.h> int main() { double sinx, temp, x; // x tinh theo radian int i = 0; scanf("%lf", &x); sinx = temp = x; while (temp > 0.000001 || temp < -0.000001) // lam tron den 5 so thap phan { i++; temp = temp*x/(2*i+1)*x/(2*i); // x^(2i+1)/(2i+1)! if (i%2==0) sinx = sinx + temp; else sinx = sinx - temp; } printf("%.5f",sinx); return 0; }
Có thể do kiểu dữ liệu hoặc một số lý do khác mà chỉ chính xác được đến -27<=x<=27 với x tính theo radian.
Ở code trên chúng ta không tính hàm x^(2i+1) và (2i+1)! riêng ra mà tính liền vào temp tức là tính temp = x^(2i+1) / (2i+1)! để tránh tràn số với các số x lớn.
Từ đây chúng ta có thể xây dựng cách tính cho các hàm lượng giác khác.
Tham khảo thêm:
Hàm lượng giác
anh ơi có thể tính tanh trong lập trình c được không ạ !
Có nhé. Bạn dùng thư viện math.h và dùng hàm tanh(x) tính tanh nhé.