diff --git a/HW4/README.html b/HW4/README.html index 468d758..67d8735 100644 --- a/HW4/README.html +++ b/HW4/README.html @@ -10,29 +10,34 @@

Homework #4

-

due 3/28/17 by 11:59pm

+

final commit due 11/2/17 by 11:59pm

Include all work as either an m-file script, m-file function, or example code included with ``` and document your code in the README.md file

  1. Create a new github repository called ‘04_linear_algebra’.

      -
    1. Add rcc02007 and pez16103 as collaborators.

    2. +
    3. Add rcc02007 and zhs15101 as collaborators.

    4. Clone the repository to your computer.

    5. +
    6. Complete this before 10/26 by midnight

  2. -
  3. Create the 4x4 and 5x5 Hilbert matrix as H:

  4. +
+

P2 Due 10/26

+
    +
  1. Create the 4x4 and 5x5 Hilbert matrix as H. Include the following results in your README before 10/26 by midnight:
  1. What are the 2-norm, frobenius-norm, 0-norm and infinity-norm of the 4x4 and 5x5 Hilbert matrices?

  2. What are the 2-norm, frobenius-norm, 0-norm and infinity-norm of the 4x4 and 5x5 inverse Hilbert matrices?

  3. What are the condition numbers for the 2-norm, frobenius-norm, 0-norm and infinity-norm of the 4x4 and 5x5 Hilbert matrices?

+

P3-4 Due 10/30

    -
  1. Create an LU-decomposition function called lu_tridiag.m that takes 3 vectors as inputs and calculates the LU-decomposition of a tridiagonal matrix. The output should be 3 vectors, the diagonal of the Upper matrix, and the two off-diagonal vectors of the Lower and Upper matrices.

    -

    [ud,uo,lo]=lu_tridiag(e,f,g);

  2. -
  3. Use the output from lu_tridiag.m to create a forward substitution and back-substitution function called solve_tridiag.m that provides the solution of Ax=b given the vectors from the output of [ud,uo,lo]=lu_tridiag(e,f,g). Note: do not use the backslash solver \, create an algebraic solution

    -

    x=solve_tridiag(ud,uo,lo,b);

  4. +
  5. Create a Cholesky factorization function called chol_tridiag.m that takes 2 vectors as inputs and calculates the Cholseky factorization of a tridiagonal matrix. The output should be 2 vectors, the diagonal and the off-diagonal vector of the Cholesky matrix.

    +

    [d,u]=chol_tridiag(e,f);

  6. +
  7. Use the output from chol_tridiag.m to create a forward substitution and back-substitution function called solve_tridiag.m that provides the solution of Ax=b given the vectors from the output of [d,u]=lu_tridiag(e,f). Note: do not use the backslash solver \, create an algebraic solution

    +

    x=solve_tridiag(d,u,b);

-Spring-mass system for problem 5 +Spring-mass system for problem 5

Spring-mass system for problem 5

    @@ -44,10 +49,10 @@

    due 3/28/17 by 11:59pm

  1. K1=K3=K4=1000 N/m, K2=1000e-12 N/m

    -
  1. Use lu_tridiag.m and solve_tridiag.m to solve for the displacements of hanging masses 1-4 shown above, if all masses are 1 kg.
  2. +
  3. Use chol_tridiag.m and solve_tridiag.m to solve for the displacements of hanging masses 1-4 shown above in 5a-c, if all masses are 1 kg.
-Spring-mass system for analysis +Spring-mass system for analysis

Spring-mass system for analysis

    @@ -55,10 +60,18 @@

    due 3/28/17 by 11:59pm

  1. The curvature of a slender column subject to an axial load P can be modeled by

\(\frac{d^{2}y}{dx^{2}} + p^{2} y = 0\)

-

where \(p^{2} = \frac{P}{EI}\)

+
+ + +
+

where \(p^{2} = \frac{P}{EI}\)

where E = the modulus of elasticity, and I = the moment of inertia of the cross section about its neutral axis.

This model can be converted into an eigenvalue problem by substituting a centered finite-difference approximation for the second derivative to give \(\frac{y_{i+1} -2y_{i} + y_{i-1} }{\Delta x^{2}}+ p^{2} y_{i}\)

-

where i = a node located at a position along the rod’s interior, and \(\Delta x\) = the spacing between nodes. This equation can be expressed as \(y_{i-1} - (2 - \Delta x^{2} p^{2} )y_{i} y_{i+1} = 0\) Writing this equation for a series of interior nodes along the axis of the column yields a homogeneous system of equations. (See 13.10 for 4 interior-node example)

+
+ + +
+

where i = a node located at a position along the rod’s interior, and \(\Delta x\) = the spacing between nodes. This equation can be expressed as \(y_{i-1} - (2 - \Delta x^{2} p^{2} )y_{i} +y_{i+1} = 0\) Writing this equation for a series of interior nodes along the axis of the column yields a homogeneous system of equations. (See 13.10 for 4 interior-node example)

Determine the eigenvalues for a 5-segment (4-interior nodes), 6-segment (5-interior nodes), and 10-segment (9-interior nodes). Using the modulus and moment of inertia of a pole for pole-vaulting ( http://people.bath.ac.uk/taf21/sports_whole.htm) E=76E9 Pa, I=4E-8 m^4, and L= 5m.

Include a table in the README.md that shows the following results: What are the largest and smallest loads in the beam based upon the different shapes? How many eigenvalues are there?

| # of segments | largest load (N) | smallest load (N) | # of eigenvalues |
@@ -66,6 +79,6 @@ 

due 3/28/17 by 11:59pm

| 5 | ... | ... | ... | | 6 | ... | ... | ... | | 10 | ... | ... | ... |
-

If the segment length (\(\Delta x\)) approaches 0, how many eigenvalues would there be?

+

If the segment length approaches 0, how many eigenvalues would there be?

diff --git a/HW4/README.md b/HW4/README.md index a3d4a79..0c864fe 100644 --- a/HW4/README.md +++ b/HW4/README.md @@ -1,18 +1,21 @@ # Homework #4 -## due 11/2/17 by 11:59pm +## final commit due 11/2/17 by 11:59pm *Include all work as either an m-file script, m-file function, or example code included with \`\`\` and document your code in the README.md file* +### P1-2 Due 10/26 + 1. Create a new github repository called '04_linear_algebra'. a. Add rcc02007 and zhs15101 as collaborators. b. Clone the repository to your computer. - c. Complete this before 10/26 by midnight + c. Submit clone repo link to + [https://goo.gl/forms/gFNxhNM4qJJKj8hE3](https://goo.gl/forms/gFNxhNM4qJJKj8hE3) -2. Create the 4x4 and 5x5 Hilbert matrix as H. Include the following results in your +2. Create the 4x4 and 5x5 [Hilbert matrix](https://en.wikipedia.org/wiki/Hilbert_matrix) as H. Include the following results in your README before 10/26 by midnight: a. What are the 2-norm, frobenius-norm, 0-norm and infinity-norm of the 4x4 and 5x5 @@ -24,21 +27,22 @@ README before 10/26 by midnight: c. What are the condition numbers for the 2-norm, frobenius-norm, 0-norm and infinity-norm of the 4x4 and 5x5 Hilbert matrices? -3. Create an LU-decomposition function called `lu_tridiag.m` that takes 3 vectors as inputs -and calculates the LU-decomposition of a tridiagonal matrix. The output should be 3 -vectors, the diagonal of the Upper matrix, and the two off-diagonal vectors of the Lower -and Upper matrices. +### P3-4 Due 10/30 + +3. Create a Cholesky factorization function called `chol_tridiag.m` that takes 2 vectors +as inputs and calculates the Cholseky factorization of a tridiagonal matrix. The output +should be 2 vectors, the diagonal and the off-diagonal vector of the Cholesky matrix. - ```[ud,uo,lo]=lu_tridiag(e,f,g);``` + ```[d,u]=chol_tridiag(e,f);``` -4. Use the output from `lu_tridiag.m` to create a forward substitution and +4. Use the output from `chol_tridiag.m` to create a forward substitution and back-substitution function called `solve_tridiag.m` that provides the solution of -Ax=b given the vectors from the output of [ud,uo,lo]=lu_tridiag(e,f,g). *Note: do not use +Ax=b given the vectors from the output of [d,u]=lu_tridiag(e,f). *Note: do not use the backslash solver `\`, create an algebraic solution* - ```x=solve_tridiag(ud,uo,lo,b);``` + ```x=solve_tridiag(d,u,b);``` -![Spring-mass system for problem 5](mass_springs.png) +![Spring-mass system for problem 5](./figures/mass_springs.png) 5. Create the stiffness matrix for the 4-mass system shown above for cases a-c. Calculate the condition of the stiffness matrices. What is the expected error @@ -50,10 +54,10 @@ when calculating the displacements of the 4 masses? Include the analysis and res c. K1=K3=K4=1000 N/m, K2=1000e-12 N/m -6. Use `lu_tridiag.m` and `solve_tridiag.m` to solve for the displacements of hanging - masses 1-4 shown above, if all masses are 1 kg. +6. Use `chol_tridiag.m` and `solve_tridiag.m` to solve for the displacements of hanging + masses 1-4 shown above in 5a-c, if all masses are 1 kg. -![Spring-mass system for analysis](spring_mass.png) +![Spring-mass system for analysis](./figures/spring_mass.png) 7. In the system shown above, determine the three differential equations for the position of masses 1, 2, and 3. Solve for the vibrational modes of the spring-mass system if k1=10 diff --git a/HW4/chol_tridiag.m b/HW4/chol_tridiag.m new file mode 100644 index 0000000..64b7355 --- /dev/null +++ b/HW4/chol_tridiag.m @@ -0,0 +1,11 @@ +function [d,u]=lu_tridiag(e,f); + % chol_tridiag calculates the components for Cholesky factorization of a symmetric + % positive definite tridiagonal matrix + % given its off-diagonal vector, e + % and diagonal vector f + % the output is + % the diagonal of the Upper matrix, d + % the off-diagonal of the Upper matrix, u + +end + diff --git a/HW4/lu_tridiag.m b/HW4/lu_tridiag.m deleted file mode 100644 index 1339973..0000000 --- a/HW4/lu_tridiag.m +++ /dev/null @@ -1,12 +0,0 @@ -function [ud,uo,lo]=lu_tridiag(e,f,g);``` - % lu_tridiag calculates the components for LU-decomposition of a tridiagonal matrix - % given its off-diagonal vectors, e and g - % and diagonal vector f - % the output is - % the diagonal of the Upper matrix, ud - % the off-diagonal of the Upper matrix, uo - % and the off-diagonal of the Lower matrix, lo - % note: the diagonal of the Lower matrix is all ones - -end - diff --git a/HW4/solve_tridiag.m b/HW4/solve_tridiag.m index 0c9e510..96dd8b9 100644 --- a/HW4/solve_tridiag.m +++ b/HW4/solve_tridiag.m @@ -1,11 +1,9 @@ function x=solve_tridiag(ud,uo,lo,b);``` % solve_tridiag solves Ax=b for x % given - % the diagonal of the Upper matrix, ud - % the off-diagonal of the Upper matrix, uo - % the off-diagonal of the Lower matrix, lo + % the diagonal of the Cholesky matrix, d + % the off-diagonal of the Upper matrix, u % the vector b - % note: the diagonal of the Lower matrix is all ones end