Introduction To MATLAB 3rd Ed Etter Problems
Introduction To MATLAB 3rd Ed Etter Problems
Problems
55
pROBLEMS
Which of the following are legitimate variable names in MATLAB? Test your answers
by trying to assign a value to each name by using, for example,
3vars
=3
20.
52
21.
--
22.
\14+63
23.
9~ +
or by using isvarname, as in
isvarname 3vars
2. global
3.
help
24.
25.
26.
4. My_var
27.
5.
28.
sin
6. X+Y
7.
29.
input
9.
tax-rate
10.
example1.1
11. example1_1
12.
1+3/4
14.
5*6*4/2
15.
5/2*6*4
16.
5"2*3
17.
5"(2*3)
18.
1+3+5/5+3+1
19.
(1+3+5)/(5+3+1)
12
753+ 2
1 + 53/62 + 22 - 4 1/5.5
The area of a circle is 1r-r2. Define ras 5, and then find the area of a circlf.
The surface area of a sphere is 47Tr 2 Find the surface area of a sphere with
a radius of 10 ft.
The volume of a sphere is ~7Tr 3 Find the volume of a sphere with a radius
of 2ft.
The volume of a cylinder is 7Tr 2h. Define r as 3 and h as the matrix
h = [1,5,12]
input
8.
5 +3
56
and the height has 12, and find the area of the triangles.
The volume of a right prism is base area X vertical dimension. Find the
volumes of prisms with triangles of Problem 29 as their bases, for a vertical
dimension of 10.
31. Generate an evenly spaced vector of values from 1 to 20, in increments of 1.
(Use the 1inspace command.)
32. Generate a vector of values from zero to 27T in increments of 1T /100. (Use
the 1inspace command.)
33. Generate a vector containing 15 values, evenly spaced between 4 and 20.
(Use the linspace command.)
34. Generate a table of conversions from degrees to radians. The first line
should contain the values for 0, the second line should contain the values
for 10, and so on. The last line should contain the values for 360.
35. Generate a table of conversions from centimeters to inches. Start the centimeters column at 0 and increment by 2 em. The last line should contain the
value 50 em.
36. Generate a table of conversions from mi/h to ft/s. The initial value in the
mi/h column should be 0 and the final value should be 100. Print 14values
in your table.
37. The general equation for the distance that a free falling body has traveled
(neglecting air friction) is
30.
d = ~gt2
2
Assume that g = 9.8 m/s . Generate a table of time versus distance traveled,
for time from 0 to 100 sin increments of 10 s. Be sure to use element-by-element
operations, and not matrix operations.
38.
Newton's law of universal gravitation tells us that the force exerted by one
particle on another is
6.673
CHAPTER
We know the Earth and the Moon are not always the same distance apart.
Find the force the Moon exerts on the Earth for 10 distances between
3.9 X 108 m and 4.0 X 108 m.
MATLAB
Functions
MATRIX ANALYSIS
Objectives
A=
40.
41.
42.
43.
44.
[34
4.2
8.9
2.1
7.7
8.3
0.5
3.4
1.5
6.5
4.5
3.4
42]
3.9
3.9
use a variety of
mathematical and
trigonometric functions,
use statistical functions,
Problems
Functions
min
finds the minimum value in an array, and determines which element stores the
minimum value
prod
rand
randn
rem
round
sign
sin
sinh
size
sort
sqrt
std
sum
tan
3.
4.
95
Use g = 9.9 m/s2 and an initial velocity of 100 m/s. Show that the
maximum range is obtained at 8 = 1T I 4 by computing the range in
increments of 0.05 from 0 :::; 8 :::; 1T /2. Because you are using discrete
angles, you will only be able to determine 8 to within 0.05 radians.
Remember, max can be used to return not only the maximum value in an
array, but also the element number where the maximum value is stored.
MATLAB contains functions to calculate the natural log (log), the log
base 10 ( logl 0) and the log base 2 ( log2) . However, if you want to find
a logarithm to another base, for example base b, you will have to do the
math yourself:
Poert
KEY TERMS
argument
built-in functions
composition of functions
computer simulation
function
Gaussian random
numbers
import data
local variable
mean
Monte Carlo simulation
natural logarithm
nested functions
normal random numbers
random number
seed
standard deviation
uniform random
number
user-defined function
median
PROBLEMS
5.
2.
Sometimes it is convenient to have a table of sine, cosine, and tangent values instead of using a calculator. Create a table of all three of these trigonometric functions for angles from 0 to 2'7T in increments of 0.1 radians. Your
table should contain a column for the angle, followed by the three trigonometric function values.
The range of an object shot at an angle 8 with respect to the x axis and an
initial velocity v0 is given by
v2
R(fJ) = -
1T
If you originally have 100 rabbits that breed at a rate of90 percent (0.9) per
year, find how many rabbits you will have at the end of 10 years.
Chemical reaction rates are proportional to a rate constant, k, which
changes with temperature according to the Arrhenius equation
k
koe-QJRT
6.
1.
8,000 cal/mole
1.987 cal/mole K
k0
1200 min- 1
7.
[68,83,70,75,82,57,5,76,85,62,71,96,78,76,72,75,83,93]
Use MATLAB to determine the number of grades in the array. (Do not just
count them.)
Generate 10,000 Gaussian random numbers with a mean of 80 and standard deviation of 23.5. Use the mean function to confirm that your array
actually has a mean of 80. Use the std function to confirm that your standard deviation is actually 23.5.
96
Chapter 3
MATLAB Functions
ROCKET ANALYSIS
A small rocket is being designed to make wind shear measurements in the vicinity
of thunderstorms. Before testing begins, the designers are developing a simulation
of the rocket's trajectory. They have derived the following equation, which they
believe will predict the performance of the test rocket, where tis the elapsed time,
in seconds:
height
8.
9.
10.
2.13t 2
0.0013t 4
CHAPTER
0.000034t 4751
Plotting
SENSOR DATA
Suppose that a file named sensor. da t contains information collected from a set
of sensors. Each row contains a set of sensor readings, with the first row containing
values collected at 0 seconds, the second row containing values collected at 1.0 seconds, and so on.
11.
12.
13.
Write a program to read the data file and print the number of sensors and
the number of seconds of data contained in the file. (Hint: use the size
function.)
Find both the maximum value and minimum value recorded on each sensor. Use MATlAB to determine at what times they occurred.
Find the mean and standard deviation for each sensor, and for all the data
values collected.
TEMPERATURE DATA
Suppose you are designing a container to ship sensitive medical materials between
hospitals. The container needs to keep the contents within a specified temperature
range. You have created a model predicting how the container responds to exterior
temperature, and now need to run a simulation.
14.
15.
16.
Objectives
After reading this chapter; you
should be able to
create three-dimensional
plots, and
use the interactive
MATlAB plotting tools.
148 Chapter 5
Problems
Control Structures
3.
KEY TERMS
condition
control structure
logical condition
logical operator
loop
nested loops
relational operator
repetition structure
selection structure
sequential structure
4.
5.
149
Genera~e a table of conversions from yen to dollars. Start the yen column at
5 and mcrement by 5. Print 25 lines in the table.
Generate a table of conversions from the euro to dollars. Start the euro column at 1 and increment by 2. Print 30 lines in the table.
Generate a table with four columns. The first should contain dollars, the
second the equivalent number of euros, the third the equivalent number of
pounds, and the fourth the equivalent number of yen. The first column of
the table should start with 1 and go through 25 in increments of 5.
TEMPERATURE CONVERSIONS
PROBLEMS
DISTANCES TO THE HORIZOI'J
This set of problems requires you to generate temperature conversion tables. Use
the following equations, which describe the relationships between temperatures in
degrees Fahrenheit ( Tp), degrees Celsius ( 1(;), degrees Kelvin ( TK), and degrees
Rankine ( TR), respectively:
1/c = TR -
The distance to the horizon increases as you climb a mountain (or a hill). The
expression
TR
where
d = distance to the horizon,
r = radius of the Earth, and
h =height of the hill,
can be used to calculate that distance. The distance depends on how high the hill
is and the radius of the Earth. Of course, on other planets the radius is different.
For example, the Earth's diameter is 7,926 miles and Mars' diameter is 4,217 miles.
1.
CURRENCY CONVERSIONS
Use your favorite Internet search engine to identify recent currency conversions for
British pounds sterling, Japanese yen, and the European euro to U.S. dollars. Use
the conversion equations to create the following tables. Use the disp and fprintf
commands in your solution, which should include a title, column labels, and formatted output.
459 .67R
9
5TK
You will need to rearrange these expressions to solve some of the problems.
6.
7.
8.
Generate a table with the conversions from Fahrenheit to Kelvin for values from
OoF to 200F. Allow the user to enter the increments in degrees F between lines.
Generate a table with the conversions from Celsius to Rankine. Allow the
user to enter the starting temperature and increment between lines. Print
25 lines in the table.
Generate a table with the conversions from Celsius to Fahrenheit. Allow the
user to enter the starting temperature, the increment between lines, and
the number of lines for the table.
ROCKET TRAJECTORY
Suppose a small rocket is being designed to make wind shear measurements in the
vicinity of thunderstorms. The height of the rocket can be represented by the following equation:
height= 2.13t 2
9.
10.
11.
0.0013t 4
+ 0.000034t 4 751
Create a function called height that accepts time as an input and returns
the height of the rocket. Use the function in your solutions for the next two
problems.
Compute, print, and plot the time and height of the rocket from the time it
launches until it hits the ground, in increments of 2 seconds. If the rocket
has not hit the ground within 100 seconds, print values only up through 100
seconds. (Use the function from Problem 9.)
Modify the steps in Problem 10 so that, instead of a table, the program
prints the time at which the rocket begins to fall back to the ground and the
time at which it hits the ground (when the elevation becomes negative).
150 Chapter 5
Problems
Control Structures
SUTURE PACKAGING
Sutures are strands or fibers used to sew living tissue together after an injury or an
operation. Packages of sutures must be sealed carefully before they are shipped to
hospitals so that contaminants cannot enter the packages. The substance that seals
the package is referred to as the sealing die. Generally, sealing dies are heated with
an electric heater. For the sealing process to be a success, the sealing die is maintained at an established temperature and must contact the package with a predetermined pressure for an established period of time. The period of time during which
the sealing die contacts the package is called the dwell time. Assume that the ranges
of parameters for an acceptable seal are the following:
12.
Pressure:
60-70 psi
Dwell Time:
2.0-2.5s
24551
24582
26553
26623
26642
Temperature
145.5F
153.7oF
160.3F
159.5F
160.3F
:unction of the an:ount ~f timber standing and the reforestation rate. For example,
If 100 acres are left standmg after harvesting and the reforestation rate is 0.05, then
105 acres arc forested at t~e end of the first year. At the end of the second year, the
number of acres forested IS 110.25 acres. Ifyear0 is the acreage forested, then
year1 = year 0 + rate*year 0 = year 0*(l+rate)
year2 = year 1 + rate*year 1 = year 1*(l+rate)
= yearo*(l+rate)*(l+rate) = year 0*(l+rate) 2
year3 = year 2 + rate*year 2 = year 2*(l+rate)
= year 0*(l+rate) 3
yearn= year 0*(l+rate) 0
15.
Temperature: 150-170C
Pressure
62.3
63.2
58.9
58.9
61.2
16.
17.
14.
Assume that there arc 14,000 acres total, with 2500 uncut acres and that the
reforestation rate is 0.02. Print a table showing the number of acres reforested at the ~nd of each year for a total of 20 years. You should also present
your results m a bar graph, labeled appropriately.
ModifY the program developed in Problem 15 that the user can enter the
number of years to be used for the table.
ModifY the program developed in Problem 15 so that the user can enter a
num~er ~f acres, and the program will determine how many years are
reqmred for the number of acres to be forested. (You will need a loop for
this one.)
SENSOR DATA
18.
Dwell Time
2.23
2.52
2.51
2.01
1.98
13.
151
Modify the solution developed in Problem 12 so that it also prints the number of batches in each rejection category and the total number of batches
rejected. (Remember that a rejected batch should appear only once in the
total, but could appear in more than one rejection category.)
Confirm that the data in suture. dat relates only to batches that should
have been rejected. If any batch should not be in the data file, print an
appropriate message with the batch information.
TIMBER REGROWTH
A problem in timber management is to determine how much of an area to leave
uncut so that the harvested area is reforested in a certain period of time. It is
assumed that reforestation takes place at a known rate per year, depending on climate and soil conditions. A reforestation equation expresses this growth as a
20.
21.
Write a program that uses the power-plant output data and prints a report
that lists the number of days with greater-than-average power output. The
report should give the week number and the day number for each of these
days, in addition to printing the average power output for the plant during
the 8-week period.
Write a program that uses the power-plant output data and prints the day
and week during which the maximum and minimum power output
occurred. If the maximum or minimum power output occurred on more
than one day, the program should print all the days involved.
Write a program that uses the power-plant output data to print the average
power output for each week. Also print the average power output for day 1,
day 2, and so on.
174 Chapter 6
Matrix Computations
Problems
~__s_u_M_M_A_R_v~~~~~--------------------------------In this chapter, we presented matrix functions to create matrices of zeros, matrices
of ones, identity matrices, diagonal matrices, and magic squares. We also defined
the transpose, the inverse, and the determinant of a matrix, and presented functions to compute them. We also presented functions for flipping a matrix from left
to right, and for flipping it from top to bottom. We defined the dot product
(between two vectors) and a matrix product (between two matrices), and presented
functions to compute these. Two methods for solving a system of N equations with
Nunknowns using matrix operations were presented. One method used the inverse
of a matrix, and the other used matrix left division.
MATLAB Summary
This MATLAB summary lists and briefly describes all of the special characters, commands, and functions that were defined in this chapter:
PROBLEMS
1.
(a) A= [1 3 5],
(b) A= [0 -1 -4 -8],
B=[-3 -2 4]
B = [4 -2 -3 24]
2. Compute the total mass of the following components, using a dot product:
Component
Density, 9/cm3
Volume, cm3
Propellant
1.2
700
Steel
7.8
200
Aluminum
2.7
300
Compute the dot product of the following pairs of vectors, and then show that
AB=BA
Special Characters
175
CP
:l:m;C;
i=l
where
is the mass of each component, g;
C; is the heat capacity of each component,J/gK; and
CP is the total heat capacity,J/K.
Find the total heat capacity of a bomb calorimeter with the following
components:
m;
dot
diag
eye
fliplr
flipud
Component
Mass, 9
Steel
250
Water
100
4.2
10
0.90
Aluminum
inv
magic
ones
zeros
4.
0.45
5.
B = [2 12; 0 0]
B
[-24;38;12-2]
KEY TERMS
Mass of Water, 9
110.0
conformable
determinant
diagonal matrix
dot product
identity matrix
ill-conditioned matrix
inverse
magic square
main diagonal
matrix left division
matrix multiplication
singular matrix
system of equations
transpose
100.0
101.0
98.6
99.4
Calculate the total heat capacity for the calorimeter for each of the
experiments.
176
Chapter 6
Matrix Computations
6.
7.
8.
Problems
Given the array A = [-1 3; 4 2], raise each element of A to the second
power. Raise A to the second power by matrix exponentiation. Explain why
the answers are different.
Given the array A = [-1 3; 4 2], compute the determinant of A.
If A is conformable to B for addition, then a theorem states that
(A + B)T = AT + Br. Use MATLAB to test this theorem on the following
matrices:
A=
9.
10.
-5]
12
0
2
-2
-1
B=
We solved this set of equations using the matrix inverse approach. Redo the
problem, but this time use the left division approach.
14.
u '~]
Oxygen
Carbon
Nitrogen
0
2
3
15.9994
12.01l
14.00674
32.066
1.00794
Sulfur
Hydrogen
(a) Write a program in which the user enters the number of oxygen atoms,
carbon atoms, nitrogen atoms, sulfur atoms, and hydrogen atoms in an
amino acid. Compute and print the corresponding molecular weight.
Use a dot product to compute the molecular weight.
(b) Write a program that computes the molecular weight of each amino
acid in Table 6.1, assuming that the numeric information in this table is
contained in a data file named elements.dat. Generate a new data file
named weights.dat that contains the molecular weights of the amino
acids. Use matrix multiplication to compute the molecular weights.
Recall that not all matrices have an inverse. A matrix is singular (i.e., it does
not have an inverse) if IAI = 0. Test the following matrices using the determinant function to see if each has an inverse:
11.
l0x 1
(b) -3x1
5x 1
(c)
12.
+ x2 = -3
+ x2 = 3
7x2 + Ox3 = 7
+ 2x2 + 6x3 = 4
+ x2 + 5x3 = 6
X] + 4x2 2x 1 + 7x2 +
X]+ 4x2 3x1 -10x2 -
x3 +
x3x3 +
2x3 +
2
x4 =
2x4 = 16
2x4 = -15
5x4 = -15
Time each method you used in Problem 11 for part c by using the clock
function and the etime function, the latter of which measures elapsed
time. Which method is faster, left division or inverse matrix multiplication?
tO
= clock;
(code to be timed)
etime(clock,tO)
13.
In Example 6.4, we showed that the circuit shown in Figure 6.3 could be
described by the following set of linear equations:
+ R3)i2 + (-R3)i3
= 0
(-R2)il
(R1
R2
177
Amino Acid
Alanine
Arginine
Asparagine
Aspartic
15
Cysteine
Glutamic
Glutamine
10
Glycine
Histidine
Isoleucine
Leucine
Lysine
Methionine
Phenylanlanine
11
Proline
10
2
3
10
13
13
15
11
Serine
Threonine
Tryptophan
11
11
Tyrosine
11
Valine
11
224
;:_
"---,
Chapter 8
Numerical Techniques
Problems
1400
1200
1000
800
600
400
200
0
-200
-4
-3
225
integral
interpl
polyfit
polyval
evaluates a polynomial
-2
X
Figure 8.24
KEY TERMS
backward difference
basic fitting window
best fit
central difference
critical points
cubic spline
data statistics window
degree of a polynomial
crosses zero. These indices are then used with the vector xd to print the approximation to the locations of the critical points:
%
In the example discussed in this section, we assumed that we had the equation
of the function to be differentiated, and thus we could generate points of the function. In many engineering problems, the data to be differentiated are collected
from experiments. Thus, we cannot choose the points to be close together to get a
more accurate measure of the derivative. In these cases, it might be a good solution
to use alternative techniques that allow us to determine an equation for a polynomial that fits a set of data and then compute points from the equation to use in
computing values of the derivative.
SUMMARY
11~~-1--------------------In this chapter, we explained the difference between interpolation and leastsquares curve fitting. Two types of interpolation were presented: linear interpolation and cubic-spline interpolation. Mter presenting the MATLAB commands for
performing these types of interpolations, we then turned to least-squared curve
fitting using polynomials. This discussion explained how to determine the best fit
to a set of data using a polynomial with a specified degree and then how to use the
best-fit polynomial to generate new values of the function. Use of the interactive
basic fitting window was also described to perform these same functions.
Techniques for numerical integration and numerical differentiation were also presented in this chapter.
MATLAB Summary
This MATLAB summary lists and briefly describes all of the commands and functions that were defined in this chapter:
derivative
forward difference
integral
interactive fitting tools
least-squares solution
linear interpolation
linear regression
numerical diifeienttia;tlcn{
PROBLEMS
INTERPOLATION
Generate j(x) = x 2 for x
1. Compute and plot the linear
points over the range [ -3:0.5:6].
2. Compute the value of/( 4) using
polation. ~What are the respective
the actual value ofj(4)?
1.0
2.0
3.0
4.0
5.0
numerical integrati?n
polynomial regression
quadrature
residual sum
Simpson's rule
trapezoidal rule
3.
4.
Problems
8.
9.
227
Determine the sum of the squares of the distances of these points from the
line of best fit determined in Problem 7.
Compare the error sum from Problem 8 with the same error sum computed
from the best quadratic fit. What do these sums tell you about the two models for the data?
TANGENT FUNCTION
EXPANDED CYLINDER HEAD DATA
Assume that we measure temperatures at three points around the cylinder head in
the engine instead of at just one point. Table 8. 7 contains this expanded set of data.
Table 8.7 Expanded Cylinder Head Temperatures, oF
Time (s)
5.
6.
Temp 1
Temp2
0.0
0.0
0.0
Temp3
0.0
1.0
20.0
25.0
52.0
2.0
60.0
62.0
90.0
3.0
68.0
67.0
91.0
4.0
77.0
82.0
93.0
5.0
110.0
103.0
96.0
The data set in Table 8.9 represents the time and altitude values for a sounding
rocket that is performing high-altitude atmospheric research on the ionosphere.
Assume that these data have been stored in a matrix with six rows and four
columns. Determine interpolated values of temperature at the three points
in the engine at 2.6 seconds, using linear interpolation.
Using the information from Problem 5, determine the time that the temperature reached 75 degrees at each of the three points in the cylinder
head.
SPACECRAFT ACCELEROMETER
The guidance and control system for a spacecraft often uses a sensor called an
accelerometer, which is an electromechanical device that produces an output voltage proportional to the applied acceleration. Assume that an experiment has
yielded the set of data shown in Table 8.8.
Table 8.8 Spacecraft Accelerometer Data
Acceleration
7.
Voltage
-4
0.593
-2
0.436
0.061
0.425
0.980
1.213
1.646
10
2.158
Determine the linear equation that best fits this set of data. Plot the data
points and the linear equation.
Altitude, m
60
10
2,926
20
10,170
30
21,486
40
33,835
50
45,251
60
55,634
70
65,038
80
73,461
90
80,905
100
87,368
110
92,852
120
97,355
130
100,878
140
103,422
150
104,986
160
106,193
170
110,246
180
119,626
190
136,106
200
162,095
210
199,506
(continued)
Time, s
Altitude, m
220
238,775
230
277,065
240
314,375
250
350,704
Index
Symbols
12.
13.
14.
Determine an equation that represents the data, using the interactive curve
fitting tools.
Plot the altitude data. The velocity function is the derivative of the altitude
function. Using numerical differentiation, compute the velocity values from
these data, using a backward difference. Plot the velocity data. (Note that
the rocket is a two-stage rocket.)
The acceleration function is the derivative of the velocity function. Using
the velocity data determined from Problem 13, compute the acceleration
data, using backward difference. Plot the acceleration data.
5;
Increase the value ofn to increase the accuracy of the estimate in Problem 15.
17.
18.
19.
20.
x
linspace(0,2*pi,n);
y
x.*sin(x) + cos(l/2*x) .A2 - 1./(x-7);
p1ot(x,y, -o')
16.
%(comment operator), 9
. * (element-by-element multiplication), 33
(element-by-element exponentiation), 33
. I (element-by-element division), 33
(matrix transpose), 34
: (colon operator), 38
%e,44
%f,44
%g, 44
<(less than), 132
<= (less than or equal to), 132
>(greater than), 132
>= (greater than or equal to), 132
==(equal to), 132
-=(not equal to), 132
I (or), 133
& (and), 133
- (not), 133
\ (matrix left division), 173
[0.1,0.3,5,6,23,24];
[2.8,2.6,18.1,26.8,486.1,530];
Determine the best-fit polynomial of order 2 for the data. Calculate the sum
of squares for your results. Plot the best-fit polynomial for the six data points.
Generate a new X containing 250 uniform data points in increments of 0.1
from [0.1, 25.0]. Using the best-fit polynomial coefficients from the previous problem, generate a new Y containing 250 data points. Plot the results.
Compute an estimate of the derivative using the new X and the new Y generated in the previous problem. Compute the coefficients of the derivative.
Plot the derivative using differences along with the points computed from
using the equation ofthe derivative (determined from the coefficients).
Let the function f be defined by the following equation:
j(x)
= 4e-x
Plot this function over the interval [0, 1]. Use numerical integration techniques
to estimate the integral ofj(x) over [0, 0.5], and over [0, 1].
abs function, 60
Abstraction, 8
Algorithm, 9
Annotating a plot, 106
ans, 19,26
Argument, 58
Arithmetic
logic unit (ALU), 3
operation, 26
Array editor, 23
ascii option, 46
ASCII files, 46
as in function, 65
Assembler, 6
Assembly
language, 5
process, 6
Assignment operator, 27
autumn color map, 122
Axes scaling, 106
axis function, 106
B
Backward difference approximation, 221
bar function, 108
bar3 function, 108
c
ceil function, 60
Central difference approximation, 222
Central processing unit (CPU), 3
c1c command, 19
clear function, 21
elf function, 36
clock, 26
collect function, 182
Collecting coeflicients, 182
Colon operator, 38, 39
colorcube color map, 122
colormap function, 122
Command
history window, 20
window, 19
Command-line help function, 58
Comment, 9, 48
Compile error, 6
Compiler, 6
Composition of functions, 58
Computational limitations, 29
Computer, 2
hardware, 3
program, 3
language, 5
simulation, 80
software, 3, 4
Condition, 132
Conformable, 163
contour function, 123
Contour plot, 123
Control structure, 132
cool color map, 122
copper color map, 122
cos function, 64
229