diff options
| author | Christian Kolset <christian.kolset@gmail.com> | 2025-04-10 14:07:45 -0600 |
|---|---|---|
| committer | Christian Kolset <christian.kolset@gmail.com> | 2025-04-10 14:07:45 -0600 |
| commit | 62b36d8f969d3892b406353a3f68630200b6c040 (patch) | |
| tree | 53e1aa6e3f0b1dd6ad7b522b0bde5647d18b4058 /tutorials | |
| parent | bb102acf02ab1c9263a95928ca53b97fb0478383 (diff) | |
2_debugging_code.md & non-leaner_solver.py added to repo
Diffstat (limited to 'tutorials')
| -rw-r--r-- | tutorials/module_2/2_debugging_code.md | 88 | ||||
| -rw-r--r-- | tutorials/module_2/non-linear_solvers.py | 89 | ||||
| -rw-r--r-- | tutorials/module_3/.ipynb_checkpoints/vibrations-checkpoint.ipynb | 189 |
3 files changed, 177 insertions, 189 deletions
diff --git a/tutorials/module_2/2_debugging_code.md b/tutorials/module_2/2_debugging_code.md new file mode 100644 index 0000000..ef8dfce --- /dev/null +++ b/tutorials/module_2/2_debugging_code.md @@ -0,0 +1,88 @@ +# Debugging Code + +### 1. Introduction + +Have you ever had a piece of code not work the way you expected? What did you do? You may have , asked a friend or used an AI assistant. In this section, the following concepts are introduced - definition of a bug, common types of bugs and debugging techniques. + +A *software bug* is an unintentional mistake or defect with a program, this comes either from when the programmer makes a mistake in writing the code or the code works in a way which has consequences that were not foreseen by the programmer. Debugging is the act removing the bugs in the software. Debugging is a normal part of programming that even experiences developers spend a lot of time on. + +--- +### 2. Types of Bugs +When writing code you are guaranteed to have bugs in your code. These bugs can be categorized in the following three groups. + +- **Syntax errors** - this type of error occurs when the code fails due to missing colons, missing indentation or a typo in code - some languages like python are case sensitive meaning that the a capital letter are different symbols. +- **Runtime errors** - e.g., dividing by zero or file not found. +- **Logical errors** - this may be the most dangerous that we need to be careful with because this error can occur without any error messages but it gives you the wrong result. + +--- +### 3. Debugging Techniques +**3.1. Print Debugging** +Insert print statements to check values of variables throughout the program. +```python +def add(x, y): + print(f"x = {x}, y = {y}") + return x + y +``` +In the example above the print statement gives us feedback on what the code is doing. The function in this example is obviously very simple, but when we start applying more complex equations or function then checking to see if the input variables are correct can indicate whether there is an issue lies within the `add()` function or if the function is given an incorrect input. + +**3.2. Rubber Duck Debugging** +This is a technique by which you explaining your code line by line in natural language to someone else, yourself or an inanimate object like a rubber duck. This can help you spot your mistake in the code. + +**3.3. Commenting Out Code** +Using comments to temporarily suppress parts of your code help you isolate and find the bug. + +**3.4. IDE Debugging tools** +Depending if you use an IDE, they often come with some sort of debugging tools such as breakpoints, step into/over and variables explorers. + +**3.5. AI Chat** +AI chat bots can help you find typo or fix logic in your code. You may find yourself going through the steps above when using an AI assistant to help you debug the code. However *never* assume that the code AI gives you works the way you intend it to work. + +--- +### 4. Interactive Debugging Activity + +In the examples debug the code and document the following: + - What the bug is + - How you found it (technique used) + - What actions you took to fix the bug +#### Code 1 +```python +def greet(name) + print("Hello, " + Name) +greet("John") +``` +#### Code 2 +```python +import numpy as np + +x = np.linspace(0,5,100) +y = 1/x + +print("Result:", y[0]) +``` +#### Code 3 +```python +def f(x): + return x**2 - 4 # Root at x = ±2 + +def bisection(a, b, tol=1e-5, max_iter=100): + if f(a) * f(b) >= 0: + print("Bisection method fails. f(a) and f(b) should have opposite signs.") + return None + + for i in range(max_iter): + c = (a + b) / 2 + if abs(f(c)) < tol: + return c + elif f(c) * f(b) < 0: # ❌ Logic error is here + a = c + else: + b = c + return (a + b) / 2 +``` + + + +--- +### 5. Reflection +- What was the most challenging bug you found? +- What debugging method did you find most useful? diff --git a/tutorials/module_2/non-linear_solvers.py b/tutorials/module_2/non-linear_solvers.py new file mode 100644 index 0000000..249cd57 --- /dev/null +++ b/tutorials/module_2/non-linear_solvers.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Thu Apr 3 11:53:24 2025 + +@author: christian +""" + +from scipy.optimize import fsolve, root, minimize +from sympy import symbols, Eq, nsolve +import numpy as np + +### fsolve ### +def equations(vars): + x, y = vars + eq1 = x**2 + y**2 - 25 + eq2 = x**2 - y + return [eq1, eq2] + +initial_guess = [1, 1] +solution_fsolve= fsolve(equations, initial_guess) + + +### root ### +def equations(vars): + x, y = vars + eq1 = x**2 + y**2 - 25 + eq2 = x**2 - y + return [eq1, eq2] + +initial_guess = [1, 1] +solution_root = root(equations, initial_guess) + + +### minimize ### +# Define the equations +def equation1(x, y): + return x**2 + y**2 - 25 + +def equation2(x, y): + return x**2 - y + +# Define the objective function for optimization +def objective(xy): + x, y = xy + return equation1(x, y)**2 + equation2(x, y)**2 + +# Initial guess +initial_guess = [1, 1] + +# Perform optimization +result = minimize(objective, initial_guess) +solution_optimization = result.x + + +### nsolve ### +# Define the variables +x, y = symbols('x y') + +# Define the equations +eq1 = Eq(x**2 + y**2, 25) +eq2 = Eq(x - y, 0) + +# Initial guess for the solution +initial_guess = [1, 1] + +# Use nsolve to find the solution +solution_nsolve = nsolve([eq1, eq2], [x, y], initial_guess) + + +### newton_method ### +def equations(vars): + x, y = vars + eq1 = x**2 + y**2 - 25 + eq2 = x**2 - y + return np.array([eq1, eq2]) + +def newton_method(initial_guess, tolerance=1e-6, max_iter=100): + vars = np.array(initial_guess, dtype=float) + for _ in range(max_iter): + J = np.array([[2 * vars[0], 2 * vars[1]], [2 * vars[0], -1]]) + F = equations(vars) + delta = np.linalg.solve(J, -F) + vars += delta + if np.linalg.norm(delta) < tolerance: + return vars + +initial_guess = [1, 1] +solution_newton = newton_method(initial_guess)
\ No newline at end of file diff --git a/tutorials/module_3/.ipynb_checkpoints/vibrations-checkpoint.ipynb b/tutorials/module_3/.ipynb_checkpoints/vibrations-checkpoint.ipynb deleted file mode 100644 index 5198d06..0000000 --- a/tutorials/module_3/.ipynb_checkpoints/vibrations-checkpoint.ipynb +++ /dev/null @@ -1,189 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "acdd5c98-be3b-4c4b-8e4f-73a6f16cd822", - "metadata": {}, - "source": [ - "Earthquake-Induced Vibrations Problem\n", - "\n", - "Scenario:\n", - "\n", - "A single-story building can be modeled as a single-degree-of-freedom (SDOF) system, where the mass of the building is lumped at the roof level and supported by the structural stiffness of the walls and columns. During an earthquake, the ground moves, causing the base of the structure to undergo horizontal displacement. Engineers are interested in understanding how the structure responds to this ground motion.\n", - "\n", - "**Given:**\n", - "\n", - " Mass of the structure (roof and upper level):\n", - " m=20,000 kgm=20,000 kg\n", - "\n", - " Stiffness of the supporting structure (walls/columns):\n", - " k=8×106 N/mk=8×106 N/m\n", - "\n", - " Damping ratio:\n", - " ζ=0.05ζ=0.05 (5%)\n", - "\n", - " Ground acceleration during an earthquake is modeled as:\n", - " y¨(t)=Asin(ωgt)y¨(t)=Asin(ωgt), where:\n", - " A=3 m/s2A=3 m/s2, ωg=5 rad/sωg=5 rad/s\n", - "\n", - "**Tasks:**\n", - "\n", - " Natural Frequency:\n", - "\n", - " Compute the natural frequency ωnωn and natural period TnTn of the structure.\n", - "\n", - " Equation of Motion (EOM):\n", - "\n", - " Write the equation of motion of the system in terms of relative displacement x(t)x(t) between the mass and the moving base.\n", - "\n", - " Steady-State Response:\n", - "\n", - " Determine the steady-state amplitude of the relative displacement using the frequency response function (assume sinusoidal base excitation).\n", - "\n", - " Resonance Check:\n", - "\n", - " Discuss whether resonance is likely to occur with the given excitation. What could engineers do to reduce the risk?\n", - "\n", - " Plotting (Optional for coding extension):\n", - "\n", - " Plot the amplitude of the relative displacement vs. excitation frequency ωgωg in the range 0–10 rad/s.\n", - "\n", - "Hints:\n", - "\n", - " The relative EOM under base excitation is:\n", - " mx¨+cx˙+kx=−my¨(t)\n", - " mx¨+cx˙+kx=−my¨(t)\n", - "\n", - " Use the frequency response function (FRF) for an SDOF system to solve for steady-state amplitude:\n", - " X(ω)=mA(k−mω2)2+(cω)2\n", - " X(ω)=(k−mω2)2+(cω)2\n", - "\n", - "mA\n", - "\n", - "Damping coefficient c=2ζmωnc=2ζmωn" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "5c55c97d-7a2c-42aa-921c-f9de5838dc46", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Natural Frequency (omega_n): 20.00 rad/s\n", - "Natural Period (T_n): 0.31 s\n", - "Damping Coefficient (c): 40000.00 Ns/m\n", - "Steady-State Amplitude of Relative Displacement (X): 0.0080 m\n", - "Excitation frequency is not near the natural frequency. Resonance unlikely.\n" - ] - }, - { - "data": { - "image/png": "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xRdfiPDwcPHpp58KAGLUqFGievXqYtmyZSI8PFwMGjQoz2soP0ePHhVWVlYiKChIF1dkZKQQQojLly8LW1tbUalSJbFx40axc+dO8e677woAYsGCBS/sZw8PDxEUFKT7vTx58kTs27dPVKhQQTRu3Fiv7W+//SamT58utm7dKiIiIsQvv/wimjdvLsqVKycePnyoa2fq148QOe+tI0eOzPO8UqlUQqvV6todOnRImJubi3HjxgkhhEhLSxO+vr6ievXqIjU1VdcuODhYyGQyMXToULF9+3axa9cuMXfuXPHNN9/o2jRv3lw0b95cCJHz+ty9e7cAIIYMGaL7vVy/fl0IIURERISYMGGC+P3330VERITYunWr6Natm7CyshKXL18WQgiRnJyse3/9/PPPdfu4c+eOEOL/n0tP++CDD3TPpd27d4tVq1aJcuXKiYoVK+r9Dpo3by4cHR1FlSpVxKpVq0R4eLgYOXKkACA2bNjwwv4let2YpBG9IXL/sOX3T6VS6T4cNmvWTO9xaWlpwsHBQXTu3Flvu0ajEbVr1xZvvfWWblvDhg2Fm5ubyMjI0G1LSUkRDg4OL52ktW/fXlSoUCHPB+1Ro0YJS0tLkZSUJIT4/w+3uR/Yc/36668CgDh69KgQQognT54IOzs70aRJE70PJs+aMWOGUCqV4sGDB7ptISEheZKT/DybED958kTs3r1buLi4iGbNmul94K5evbqoW7dung/hnTp1Eq6urkKj0QghhPDz8xPdunV77nEHDBggAOh9SBJCiLlz5woA4tChQ0IIofugtHDhQr12uee3evVq3TYPDw9haWkpbt++rduWkZEhHBwcxPDhw3XbChNfYc81P6tWrRIAxK+//qq3fcGCBQKACAsL021r3ry5qFGjxnNjybVz505RtmxZ3WvB0dFR9OrVS/z555967QqTpPXp00cA0D1nLC0tRaNGjZ57/M8++0wAEMePHxdC/P/zOL9/165de+6+rl+/Lvz8/HTtraysROvWrcWKFStEdna2rp1GoxHe3t6ia9eueo/v2LGjqFSpku51MWrUKFG6dOnnHvO3334TAMT+/fv1thvyvpH7wfqrr77Sa1unTh0BQPzxxx+6bSqVSpQrV0507979uXEJIYSNjY0YMGBAnu19+/YVFhYWIiYmRm97x44dhbW1tXj8+PFz9+vh4ZHv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", - "text/plain": [ - "<Figure size 1000x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Earthquake-Induced Vibrations: SDOF System\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# Given Parameters\n", - "m = 20000 # kg\n", - "k = 8e6 # N/m\n", - "zeta = 0.05 # damping ratio\n", - "A = 3 # m/s^2 (ground acceleration amplitude)\n", - "omega_g = 5 # rad/s (excitation frequency)\n", - "\n", - "# 1. Natural Frequency and Period\n", - "omega_n = np.sqrt(k / m) # rad/s\n", - "T_n = 2 * np.pi / omega_n # s\n", - "\n", - "print(f\"Natural Frequency (omega_n): {omega_n:.2f} rad/s\")\n", - "print(f\"Natural Period (T_n): {T_n:.2f} s\")\n", - "\n", - "# 2. Damping Coefficient\n", - "c = 2 * zeta * m * omega_n\n", - "print(f\"Damping Coefficient (c): {c:.2f} Ns/m\")\n", - "\n", - "# 3. Steady-State Amplitude under Base Excitation\n", - "omega = omega_g\n", - "numerator = m * A\n", - "\n", - "denominator = np.sqrt((k - m * omega**2)**2 + (c * omega)**2)\n", - "X = numerator / denominator\n", - "\n", - "print(f\"Steady-State Amplitude of Relative Displacement (X): {X:.4f} m\")\n", - "\n", - "# 4. Resonance Check\n", - "if np.isclose(omega_g, omega_n, rtol=0.1):\n", - " print(\"Warning: Excitation frequency is near the natural frequency. Resonance may occur!\")\n", - "else:\n", - " print(\"Excitation frequency is not near the natural frequency. Resonance unlikely.\")\n", - "\n", - "# 5. Frequency Response Plot (optional)\n", - "omega_range = np.linspace(0.1, 10, 500)\n", - "X_response = (m * A) / np.sqrt((k - m * omega_range**2)**2 + (c * omega_range)**2)\n", - "\n", - "plt.figure(figsize=(10,6))\n", - "plt.plot(omega_range, X_response)\n", - "plt.axvline(omega_n, color='r', linestyle='--', label=f'Natural Frequency: {omega_n:.2f} rad/s')\n", - "plt.title('Frequency Response of SDOF System to Base Excitation')\n", - "plt.xlabel('Excitation Frequency (rad/s)')\n", - "plt.ylabel('Relative Displacement Amplitude (m)')\n", - "plt.grid(True)\n", - "plt.legend()\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ea11273e-edb3-456f-b180-fa28af671be0", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "1. Given\n", - "\n", - "2. Find\n", - "\n", - "3. Assumptions\n", - "\n", - "4. Solution\n", - "\n", - "5. Comment" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} |
