Topics
The Final project will consist of a 4-5+ page (typed) report that includes:
1. p 1 - Title page with your name and abstract.
2. pp 2-5 - Introduction, explanation of all methods used (equations, data sets, etc), conclusion/summary (your
code output should be included here)
3. appendix with your code (comment, comment, comment...if there are few comments I will assume you don't
know what's going on and will grade accordingly)
4. Bibliography with ALL sources cited (yes, even wikipedia). If you use code or algorithms from other sources
mention that here (include links).
All projects must have the following attributes:
1. minimum of 3 functions with "help" information describing the usage of the function
2. minimum of 1 for/while loop
3. minimum of 1 conditional statement (if/switch)
4. you must utilize structures/cell arrays in your data management
5. visual output (plot, data chart, etc)
6. DO NOT use built-in MATLAB functions (calculator and plot functions are acceptable)
Your project will be uploaded to Canvas with ALL relevant files. I will run your program so you must ensure proper
operation BEFORE submitting your program.
1. Projectile Map
Write a script that calculates the height and distance of a projectile. The user should be allowed to enter
all values necessary for the calculations (weight of projectile, gravity, starting height, ending height, angle of
launch, etc). The user should be able to inspect the plot for instantaneous values, and you should write a table
to a file with height and distance displayed.
2. Heat Transfer
In this project you will map the heat
flow across a plate of arbitrary length and width. Your script will obtain
the length and width of the plate from the user, as well as, an initial plate temperature. You will then ask the
user to specify a point, a side, or several points on the plate that have an initial starting temperature different
than the plate temperature. Your script should then calculate and plot the
ow of heat until it reaches a
steady-state.
3. Integral Solver
Write a script that calculates the integral value of a function, f(x; y; z) over a user defined domain. You should
plot the function over the specified domain in addition to providing the numerical solution. The ability to
handle +-infinity is also necessary.
4. Mandelbrot Mapping
Map the Mandelbrot set. You will likely find algorithms that offer solutions to this problem, so by choosing
this project you will need to work on optimization. Determine ways to improve on speed and efficiency, and
include a timing analysis of the various methods you attempt. Your write-up should also include a summary
of the Mandelbrot set that shows you have a decent understanding of the set.
5. Taylor Expansion
This script will allow the user to enter a function of their choosing, some point in the domain, and the desired
accuracy of the value of the function at that point. You will use a Taylor expansion around that point and
include as many terms as necessary to achieve the desired accuracy. The script will also generate plots of each
term in the expansion.
6. Polarization
Write a script that allows the user to enter as many polarized lenses as they choose along with the angle of
orientation of each lens. You will then calculate the change in intensity of the light through each lens. You will
need to incorporate a graduated scale from dark to light and provide a map of the change in intensity for the
user to visually inspect the change along the entire path. The user should also be give the percentage of initial
intensity in each region along the path.
7. See-Saw Balancing
In this project you will ask the user to provide any number of objects of varying mass, then you will take the
objects and balance them over some central point in 3-dimensions. No object can occupy the same space so
you will need to set them all at unique distances from the center. You will provide a visual representation of
the balanced system, as well as, a chart with object mass and distance from the center.
8. Racing Blocks on a Ramp
Your program will allow the user to choose between 2 starting options: 1) ramp is at a set height, and 2) ramp
is horizontal and raised at varying rates until both blocks begin to slide. You will ask the user to enter a value
for gravity, mass of the blocks, coeficient of static friction for each block, and the rate of vertical increase if
option 2 is chosen. Animate the movement of the blocks on the ramp.
9. Encryption Algorithm
This project should take any string and convert it into an unrecognizable format for display. You will need to
write the data into a file for the user. Your script should then be capable of importing the file and displaying
the decrypted string. Attempt to use the rand function in your script, and perhaps use it to generate a "key"
that is unique to the decryption of that specific file.
10. Base Converter and Calculator
Write a script that converts numbers from one base into another. The user should be able to enter: a number
in one base (between 2 and 16), a difierent number in a difierent base (between 2 and 16), the operator to be
used, and the numerical value in another base (between 2 and 16). For example, a user would want to find
1221 in base 3 times 1001001 in base 2, and suppose they want the answer in base 5 representation. For every
value entered by the user, convert the number into base 2-16 values and place them in a table.
11. Piano
Create a tool that allows the user to write their own music and have MATLAB play it for them. You can also
build an interactive GUI that allows real-time playback based on click or keypress.
12. Chess Game
Build an interactive chess game. Simple!
13. Tank Game
Create a battlefield simulation that requires tank movement and incoming artillery fire. You should have a
training course with practice targets, as well as, a live course.
14. Wifi Mapping Tool
Allow the user to create a
floorplan and have your program show the ideal placement of a single wifi access
point or mesh network APs.
15. Truss Design
Allow the user to create a
floorplan and enter the desired roof pitch, then provide a truss design that minimizes
cost (materials). You will need the full truss order. Advanced features would include: the option of gable or
hip, non-rectangular floorplan, choice of truss material (wood, LVL, metal, etc).
16. Bridge Design
Allow the user to enter the span of their choice then construct a bridge model that minimizes costs (materials)
while maintaining structural integrity. Provide the user with a load table mapping the stresses at each node.
You will also need a GUI with interactive loads and a visual response to the loads.
17. Power Grid
Create a tool that models a power grid over a specific region. Allow failure on a subgrid of any size with the
corrective measures necessary to get back online.
18. Green Power Grid
Create a tool that models a green power grid for an individual home or small community. Include solar, wind,
or any other natural resource. Model batteries vs no batteries, day vs night, high usage vs low usage, etc.
19. Infectious Disease Spread
Simulate disease spread over the world (or large subregion). Provide a cure that spreads at difierent rates, a
cure with varying costs, and a cure with logistical issues.