Click here to Skip to main content
15,887,821 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
cosx=∑n=0∞(−1)n(2n)!x2n=1−x22!+x44!−⋯
as n increases, our summation term becomes a more and more accurate approximation of cos(x), and an infinite number of terms would precisely equal cos(x). (Note: x is in radians.)

Obviously we can't add up an infinite number of terms in the real world, so instead if we implement this as a function in C++, we must specify how many terms of the summation we want to use. (In other words, the upper bound of the sum stops being infinite.)
Thus, your function will take two parameters: the value x (in radians) as the number of terms to use when approximating the solution. Thus, if my test code calls approxCosine(1.5, 3), you should return the sum of the first 3 terms of the cosine approximation:

approxCosine(1.5,3)=∑n=02(−1)n(2n)!x2n=1−x22!+x44!

What I have tried:

i do not know from where to start
Posted
Updated 21-Jun-17 21:52pm

Seriously ? your main effort was to paste the statement.
Quote:
i do not know from where to start

The answer is in the question. The first thing to do is to read the statement.
Quote:
Thus, your function will take two parameters: the value x (in radians) and the number of terms to use when approximating the solution. Thus, if my test code calls approxCosine(1.5, 3), you should return the sum of the first 3 terms of the cosine approximation:

We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.

As programmer, your job is to create algorithms that solve specific problems and you can't rely on someone else to eternally do it for you, so there is a time where you will have to learn how to. And the sooner, the better.
When you just ask for the solution, it is like trying to learn to drive a car by having someone else training.
Creating an algorithm is basically finding the maths and make necessary adaptation to fit your actual problem.

The idea of "development" is as the word suggests: "The systematic use of scientific and technical knowledge to meet specific objectives or requirements." BusinessDictionary.com[^]
That's not the same thing as "have a quick google and give up if I can't find exactly the right code".
 
Share this answer
 
v3
Comments
CPallini 22-Jun-17 2:49am    
My 5.
Patrice T 22-Jun-17 2:49am    
Thank you
Quote:
i do not know from where to start

The general term of the cosine taylor expansion is (-1)nx2n/(2n!).
The first step could be writing such as a C++ expression. The prerequisite is writing the factorial function, that is not provided.

So, supposing you've written your own factorial function (say fact), then you might write
C++
term[n] = pow(x, 2.0 * n) / fact(2 * n);
if ((n % 2) == 1) term[n] = -term[n]; // for n odd, the term is negative
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900