tính sin cos trong c++

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

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:

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:

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ức

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à nhỏ 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:

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 !

Similar Posts

Subscribe
Notify of
guest
1 Bình luận
Inline Feedbacks
View all comments