\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors)
\newcommand\bs[1]{\mathbf{#1}}\\% Poor man's siunitx
\newcommand\unit[1]{\mathrm{#1}}
\newcommand\num[1]{#1}
\newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/}
\newcommand\squared{{}^2}
\newcommand\cubed{{}^3}
%
% Scale
\newcommand\milli{\unit{m}}
\newcommand\centi{\unit{c}}
\newcommand\kilo{\unit{k}}
\newcommand\mega{\unit{M}}
%
% Percent
\newcommand\percent{\unit{\%}}
%
% Angle
\newcommand\radian{\unit{rad}}
\newcommand\degree{\unit{{}^\circ}}
%
% Time
\newcommand\second{\unit{s}}
\newcommand\s{\second}
\newcommand\minute{\unit{min}}
\newcommand\hour{\unit{h}}
%
% Distance
\newcommand\meter{\unit{m}}
\newcommand\m{\meter}
\newcommand\inch{\unit{in}}
\newcommand\foot{\unit{ft}}
%
% Force
\newcommand\newton{\unit{N}}
\newcommand\kip{\unit{kip}} % kilopound in "freedom" units - edit made by Sri
%
% Mass
\newcommand\gram{\unit{g}}
\newcommand\g{\gram}
\newcommand\kilogram{\unit{kg}}
\newcommand\kg{\kilogram}
\newcommand\grain{\unit{grain}}
\newcommand\ounce{\unit{oz}}
%
% Temperature
\newcommand\kelvin{\unit{K}}
\newcommand\K{\kelvin}
\newcommand\celsius{\unit{{}^\circ C}}
\newcommand\C{\celsius}
\newcommand\fahrenheit{\unit{{}^\circ F}}
\newcommand\F{\fahrenheit}
%
% Area
\newcommand\sqft{\unit{sq\,\foot}} % square foot
%
% Volume
\newcommand\liter{\unit{L}}
\newcommand\gallon{\unit{gal}}
%
% Frequency
\newcommand\hertz{\unit{Hz}}
\newcommand\rpm{\unit{rpm}}
%
% Voltage
\newcommand\volt{\unit{V}}
\newcommand\V{\volt}
\newcommand\millivolt{\milli\volt}
\newcommand\mV{\milli\volt}
\newcommand\kilovolt{\kilo\volt}
\newcommand\kV{\kilo\volt}
%
% Current
\newcommand\ampere{\unit{A}}
\newcommand\A{\ampere}
\newcommand\milliampereA{\milli\ampere}
\newcommand\mA{\milli\ampere}
\newcommand\kiloampereA{\kilo\ampere}
\newcommand\kA{\kilo\ampere}
%
% Resistance
\newcommand\ohm{\Omega}
\newcommand\milliohm{\milli\ohm}
\newcommand\kiloohm{\kilo\ohm} % correct SI spelling
\newcommand\kilohm{\kilo\ohm} % "American" spelling used in siunitx
\newcommand\megaohm{\mega\ohm} % correct SI spelling
\newcommand\megohm{\mega\ohm} % "American" spelling used in siunitx
%
% Inductance
\newcommand\henry{\unit{H}}
\newcommand\H{\henry}
\newcommand\millihenry{\milli\henry}
\newcommand\mH{\milli\henry}
%
% Power
\newcommand\watt{\unit{W}}
\newcommand\W{\watt}
\newcommand\milliwatt{\milli\watt}
\newcommand\mW{\milli\watt}
\newcommand\kilowatt{\kilo\watt}
\newcommand\kW{\kilo\watt}
%
% Energy
\newcommand\joule{\unit{J}}
\newcommand\J{\joule}
%
% Composite units
%
% Torque
\newcommand\ozin{\unit{\ounce}\,\unit{in}}
\newcommand\newtonmeter{\unit{\newton\,\meter}}
%
% Pressure
\newcommand\psf{\unit{psf}} % pounds per square foot
\newcommand\pcf{\unit{pcf}} % pounds per cubic foot
\newcommand\pascal{\unit{Pa}}
\newcommand\Pa{\pascal}
\newcommand\ksi{\unit{ksi}} % kilopound per square inch
\newcommand\bar{\unit{bar}}
\end{aligned}\end{align} \]
Dec 03, 2024 | 371 words | 4 min read
7.2.3. Task 3
Learning Objectives
Predict the output of a complete for
and while
loop in
Python; Create, manipulate, and read from arrays, lists, and
dictionaries in Python; Manipulate and extract information from
lists, arrays, and dictionaries in Python; Use loops to compare and
evaluate associated elements in data sets in Python.
Introduction
A Maclaurin series is an \(n^\text{th}\) degree polynomial that can be used
to approximate a function around \(x = 0\). The exponential function can be
approximated as follows:
(7.2)\[e^x
= \sum_{n=0}^{\infty}\frac{x^n}{n!}
= \frac{1^0}{0!} + \frac{x^1}{1!} + \frac{x^2}{2!} + \cdots\]
Where the infinite series converges with the actual function over all real
numbers. Practically, for a finite approximation, the fewer terms that are
used, the less accurate the approximation will be, particularly as \(x\)
gets further from \(0\).
Part A:
Using your my_factorial
function from Task 2, write a
main
program using the ENGR133_Python_Template.py
which will use the Maclaurin series defined above to
approximate \(e^x\) with specified values of \(n\) and \(x\). The
program should also print to the screen the percent error of the estimated value
with respect to a calculation of the actual value. Save the flowchart as a
separate page in
py3_team_teamnumber.pdf. Save
your Python file as
py3_team_3_a_teamnumber.py.
\[\text{Percent Error}
= \frac{\text{Approximate Value} - \text{Actual Value}}{\text{Acutal Value}}
\times 100\]
Note
Ask the user to input \(n\) and then \(x\).
Sample Output
Use the values in Table 7.6
below to test your program.
Ensure your program’s output matches the provided samples exactly.
This includes all characters, white space, and punctuation. In the
samples, user input is highlighted like
this for clarity, but your program should not highlight user
input in this way.
Case 1 Sample Output
$ python3 py3_team_3_a_teamnumber.py
Enter the value of n: 5
Enter the value of x: 3
Actual value: 20.09
Approximate value: 18.40
Error: -8.4%
Part B:
This time, write a main
function using the ENGR133_Python_Template.py
that will generate as many terms as
is necessary to approximate the function to a specified level of accuracy (i.e.,
below a percent error threshold) at a specified value of \(x\).
Additionally, print to the screen the number of terms the series must contain
before the target accuracy is achieved. Save the flowchart as a separate page
in py3_team_teamnumber.pdf. Save
your Python file as
py3_team_3_b_teamnumber.py.
Note
Ask the user to input \(x\), and then the target error.
Sample Output
Use the values in Table 7.7
below to test your program.
Ensure your program’s output matches the provided samples exactly.
This includes all characters, white space, and punctuation. In the
samples, user input is highlighted like
this for clarity, but your program should not highlight user
input in this way.
Case 1 Sample Output
$ python3 py3_team_3_b_teamnumber.py
Enter the value of x: 3
Enter the target error threshold: 5
Terms needed: 7
Actual value: 20.09
Approximate value: 19.41
Target error threshold: 5.0%