EGR 103/Spring 2023/Lab 9
Jump to navigation
Jump to search
The following document is meant as an outline of what is covered in this assignment.
Contents
Review For Lab
Note: Going forward, I will refer to the Sakai / Resources Folder / ChapraPythonified / Chapter 14 folder as "CP14"
- Read the "Part Four" introduction in Chapra, starting on p. 359 in the text and 102/539 on the web page. In section 4.2, note that we have talked / will talk about Chapters 14-18 but we will skip Chapter 16.
- Read the introduction to Chapter 14.
- Read 14.1
- The Python version of the code in 14.1.3 is in CP14 and named Chapra_14_1_3.py. You will need the Table14p03.txt data file for it to work. Notice in particular that Numpy's variance and standard deviation functions require a keyword argument to match MATLAB's default cases.
- We have covered the Python versions of 14.2. Example 14.2 and 14.3 are CP14 and named Chapra_ex_14_2.py and Chapra_ex_14_3.py.
- Skim 14.3. We did the mathematical proof in class. See General_Linear_Regression for specific and general versions but do not get too hung up on the math.
- Skip or skim 14.4. Linearization is an important concept but outside of the scope of this lab. Figure 14.13 would be a good one to look at though as it shows how plotting transformed variables in different ways might lead to an understanding of the underlying mathematical relationship.
- Skip 14.5.1. The
linergr
is a way-too-specific version of what we will eventually use. - Read 14.5.2. Note that the differences between Python and MATLAB here will be that we need to set up arrays differently (MATLAB can just use bracketed numbers separated by spaces - Python needs np.array([LIST]) and the np in front of certain commands.
- Skip or skim the case study.
- Go to Python:Fitting and specifically:
- Read the intro and note that to do the demos you will need a Cantilever.dat file with the contents shown
- Take a look at the common command references
- Look through the common code; for this lab there will be a special version of it called
lab9_common.py
which just includes thecalc_stats()
function. - Take a look at the Polynomial Fitting code and make sure you completely understand each part of it. The parts with a white background are going to be common to all the demonstrations while the code with a yellow background will be what changes each time.
- Take a look at how to make changes to Polynomial models Python:Fitting#Polynomial and General Linear models Python:Fitting#General_Linear
- You can now do Chapra 14.5 completely.
- Skim 15.1.
- Take a look at the General Linear Regression code at Python:Fitting and make sure you understand what each line does. The np.block() command is the key element in producing the $$\Phi$$ matrix needed for the least squares fit method of the linear algebra package in numpy.
- You can now do Chapra 15.10, 15.10 alt, and 15.12 completely
Submitting Work
There are Connect and Lab Assignment parts for almost every problem. The Connect parts and lab uploads are due the same day.
- You can work in small groups to create the programs. Once the programs are done, you need to work individually on making the LaTeX document.
- Be sure to carefully read each problem - sometimes Connect will change a number or a prompt slightly from the book problem.
- Once you get the Connect assignment 100% correct, you will be able to look at the assignments and the explanations for the answers. Note: if there is coding involved in an answer, the solution on Connect will be presented as MATLAB code; take a look to see the similarities and differences with Python.
- Use
fig.set_size_inches(6, 4, forward=True)}
to make your graphs all the same size. - Be sure to use tight layout and save as a .png (graphics) file, not a .eps file.
- Use
Typographical Errors
None yet!
Specific Problems
- Be sure to put the appropriate version of the honor code -- if you use the examples from Pundit, the original author is either DukeEgr93 or Michael R. Gustafson II depending on how you want to cite things.
Chapra 14.5
- See Python:Fitting#Polynomial_Fitting
- Be sure to also calculate and report \(s_{y/x}\) and \(r\).
Chapra 15.10
Chapra 15.10 Alternate
- See Python:Fitting#General_Linear_Regression
- Remember what you are trying to keep track of when discussing the reasonableness of your solution.
Chapra 15.12
Chapra 15.11
- See Python:Fitting#Nonlinear_Regression
- For the initial guesses, make sure you understand the subscripts for the parameters and then figure out how to approximate their values from the information provided in the problem.
Chapra 15.22
- See Python:Fitting#Nonlinear_Regression
- For the initial guesses, mainly note that choosing $$b=0$$ would be a terrible idea.