# homework 1 computing sine and cosine infinite series due d2l dropbox thursday september 13 1

Homework 1, Computing Sine and Cosine with Infinite Series due via D2L dropbox by Thursday, September 13, at 11:55 pm 10 points In homework 1, we’re going to compute an infinite series (although we won’t go to infinity). Consider the infinite series for sin(x), with x in radians. (The interval 0 to 2π radians is the same as 0 to 360 degrees.) ( ) We can use a loop to compute this to varying degrees of accuracy. You’ll ask the user for the number of terms to handle. I have posted a version of this as hw1-unsolved.txt. You will need to copy it and rename your copy as [removed].[removed].py. (Sorry, D2L won’t let me post .py files.) This file won’t run for you right off the bat, because the code for computing the terms is missing. But everything else is there. You must add the comments at the top for your name, lecture, and recitation, and you must add unique, original comments to the code that computes the terms to explain your logic. Comments in Python begin with a #. You are free to use either the factorial I showed in class, or math.factorial(x). Part 1 (7 points): write a Python function called infinite_sin_1. Here’s the first line: def infinite_sin_1(x): Tasks: First, you will need a variable for the total of these terms. Start that at 0. Second, you will ask the user how many terms to use. The command for this is a little ugly: iterations = int(raw_input(‘Enter the number of cosine terms to add up: ‘)) Here, the raw_input() command prompts the user for a string. But we need that string to become an integer. So we use the int() command to change the string we get back from raw_input into a number. Third, you will want to write a for-loop that uses the range command to make a list of numbers, [0, 1, 2, 3, 4]. The for-loop also sets a counter variable called i to each of these numbers in turn. (Take a look at the python examples from class to remember how for-loops work.) Fourth, inside this for-loop, you’ll figure out what the next term is and add it to the total. Getting the right exponent/factorial numbers. When i=0, the exponent and factorial for that term is 1. When i=1, the exponent and factorial for that term is 3. When i=2, the exponent and factorial for that term is 5. Use i to calculate the exponent and factorial for each term.Getting the right sign for each term. This series has alternating positive and negative terms. When i=0, 2, or any even number, the term is positive. When i=1, 3, or any odd number, the term is negative. Use i to figure this out. Adding the term to the total. When you are getting the right terms, add each one to the total inside the loop. At the end of the function, the last line should return the total. (Else, you will have no answer!) Fifth, use Python’s math.sin(x) to check your answer. You should be surprisingly close to the right number after adding a few terms. Part 2 (3 points). Write a similar method for infinite_cos_1(x). You will want to Google around for the infinite series for cosine, which should look similar to the one you know for sine. This should require only small changes inside the for-loop. When I run this code and it works, I see output like this. Enter the number of sine terms to add up: 3 Enter the number of cosine terms to add up: 6 real sine: 0.8660254037844385965883021 my sine 1: 0.8662952837868347355509968 my sine is accurate to: 0.0002698800023961389626947 real cosine: 0.5000000000000001110223025 my cosine 1: 0.4999999963909432243447384 my cosine is accurate to: 0.0000000036090568866775641 Extra credit (1 point): if you have this all working and you are bored, send me email about how bored you are, and we’ll discuss a more efficient way to compute these series.