Cách tính sin cos trong c++

0
2159

Trong c/c++ có thư viện math.h có chứa các hàm để tính sin cos, vậy có khi nào bạn thắc mắc các hàm đó sẽ tính như thế nào không ? Vậy hôm nay chúng ta cùng đi tìm cách tính sin cos trong c++ nhé!

Cách tính sin trong c++

Sin x có thể được ước lượng dưới dạng khai triển chuỗi Taylor như sau:

Cách tính sin cos trong c++ 1

Vậy nếu không cần độ chính xác quá cao thì ta có thể tính sin x với chính xác là 0.00001.

Xây dựng hàm tính sin x:

Mình xin 5 phút quảng cáo nha =))

Ta có thể thấy điểm chung của các phần tử trong chuỗi trên đều có cùng một công thứcCách tính sin cos trong c++ 2

Vậy ta chỉ cần viết một hàm tính giá trị của một phần tử theo công thức trên. Sau đó dùng vòng lặp để tính tổng các phần tử đó lại, công việc cứ tiếp tục đến khi giá trị tuyệt đối một phần tử thứ n là Cách tính sin cos trong c++ 2nhỏ hơn 0.00001.

Có một vài lưu ý nhỏ sau:

  • Ta không cần thiết phải tính (-1)n . Ta sẽ dùng một biến dấu là a, khi n chẵn thì a mang giá trị là 1 và ngược lại.
  • Bạn không nên tính riêng tử và mẫu sau đó lấy tử chia cho mẫu. Vì có thể tử và mẫu sẽ mang giá trị rất lớn.

Code tham khảo:

Ở trên mình nhập theo radian (xấp xỉ 60º) các bạn có thể chỉnh sửa để chương trình chúng ta có thể tính theo đơn vị độ.

Cách tính cos trong c++

Tương tự như sin x, cos x cũng được biểu diễn như sau:

Cách tính sin cos trong c++ 4

Bây giờ bạn sẽ có hai cách để tính cos x:

  • Tính theo công thức ở trên.
  • Sử dụng công thức cos x = sqrt( 1 – (sin x)2 )

Ở đây mình tận dụng lại code lúc trước nên mình sẽ tính theo cách hai

 

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

avatar
  Subscribe  
Notify of