Assignment: Introduction to Programming in MATLAB
Submission Instructions: Your solutions to this assignment must be typed and neatly presented. Unorganized solutions and/or solutions that do not present the required deliverables will not be graded and receive a score of zero. This assignment is to be submitted, in PDF format, to the assignment link on blackboard by the deadline.
Students who obtain a score of 80% or greater on this project will receive credit for all course outcomes.
1. Part 1 - "For" and "While" loops in MATLAB
i. Consider the approximation for sin(x) given in homework as:
sin x = x - x3/3! + x5/5! - x7/7! + x9/9! - x11/11! + x13/13! - x15/15! + x17/17!
Create a vector where each element is a term of the series. Allow the user to input the value of x (as a scalar). Sum the terms of the series using a "for" loop and create a formatted output to show the user (1) the value of the approximation, (2) the actual value of sin(x) (from the MATLAB function) and (3) the error between the two. Use values x = 2, 2.5, 3 to compare.
ii. Now consider the generalized form of the Taylor series for sin(x):
sin x = n=0∑∞(-1)n [x2n+1 / (2n + 1)!]
Sum the first 100 terms of the series and show the result as a formatted output identical to that of 1(i). Allow the user to input the value of x as a scalar. Repeat this problem with the first 250 terms. Compare the results. (Use same x values as from (i)).
iii. How many terms are required in (iii) to reduce the relative error to less than 1%? 0.00001%?
Assume that the relative error (percent) is defined as:
% Error = |(St - Sn) / St| × 100
St = sin x, St = n=0∑∞(-1)n [x2n+1 / (2n + 1)!]
where St and Sn are the true and numerical solutions, respectively. The "numerical" solution will come from the summation of terms while the true solution can be obtained using the built-in MATLAB function for sin(x). Each iteration through the loop, create a formatted output that shows (1) the iteration number, (2) the number of terms in the series and (3) the percent error between the obtained values. The output printed during the loop should be done so that a new line is created each time a new output is printed. When the loop has completed, display the result, the final percent error, and the number of terms using a single command. Save the percent error per iteration and plot % error vs. iteration when the loop has completed.
iv. For (iii), create a flowchart showing the logic of your code. Considering that this is the course project, please be sure to create this flowchart in a word editor (i.e. it must be typed!).
2. Part 2 - Processing data with MATLAB
i. Consider the 3 text files labeled "aluminum_test", "5_MIL_test" and "2_MIL_test" that are uploaded and attached to the assignment link. This data was collected when running Arizona State University's shocktube during an AEE 362 (High Speed Aerodynamics) laboratory experiment . The tests show data for 3 different shock wave experiments where shocks of different strengths were intentionally generated. Note that the first two columns represent pressure data (reported in psi) and that columns 3 and 4 show pressure data in units of Volts. Therefore, the data in columns 3 and 4 must be converted to useful units before it can be plotted. The conversion is given below, giving you a result in PSI.
PSI = 0.0418 x mV
Your task is to:
a. Load this data into MATLAB (hint: load() - you may also need to remove the text at the top of the data file).
b. Find the total time of the dataset, noting that the time between data points is 0.025 ms.
c. Add 14.0 to all the values in the second column. Plot this data together with that of the first column vs. time. Knowing that this is pressure, what appears to be happening?
d. Plot the data in columns 3 and 4 vs. time, after this data has been converted to PSI. These sensors were mounted inside the tube and represent changes in pressure over time. What can you see from the data? (quick comment)
e. The distance between the two pressure transducers is given as 48(1/32) in. Knowing this, we can use the "peaks" from the data in the plot from (d) (showing two changes in pressure at two different locations) to calculate the speed of the resulting shockwave. After generating the plot, use the "cursor tool" and find the Δt between the two peaks (you may also need to zoom- in considering it is the first two peaks we are interested in). The velocity of the wave can then be calculated using:
Δx / Δt
where Δx is the distance between pressure sensors. Compare shock speeds between the materials (no comments/analysis needed - but look at the results!). The material strengths are in the order: 5 Mil, 2Mil, Aluminum.