Numpy Numerical Analysis
When to Use This Skill
Use NumPy numerical analysis when you need:
- Matrix operations - 6DOF equations of motion, mass matrices, stiffness matrices
- FFT analysis - Frequency domain analysis, spectral density, response spectra
- Linear algebra - Solve linear systems, eigenvalue analysis, matrix decomposition
- Array operations - Efficient computations on large datasets
- Numerical integration - Time-stepping, ODE solvers
- Signal processing - Filtering, windowing, convolution
Avoid when:
- Symbolic mathematics needed (use SymPy)
- Sparse matrices dominate (use SciPy sparse)
- GPU acceleration required (use CuPy or JAX)
- Distributed computing needed (use Dask)
Complete Examples
Example 1: 6DOF Time-Domain Simulation
import numpy as np
import plotly.graph_objects as go
def simulate_6dof_vessel_motion(
mass_matrix: np.ndarray,
damping_matrix: np.ndarray,
stiffness_matrix: np.ndarray,
force_time_series: np.ndarray,
time: np.ndarray
*See sub-skills for full details.*
### Example 2: RAO Calculation from FFT
```python
def calculate_rao_from_time_series(
wave_elevation: np.ndarray,
vessel_response: np.ndarray,
dt: float
) -> tuple[np.ndarray, np.ndarray]:
"""
Calculate Response Amplitude Operator (RAO) from time series.
RAO(ω) = |Response(ω)| / |Wave(ω)|
*See sub-skills for full details.*
### Example 3: Mooring Stiffness Matrix
```python
def calculate_mooring_stiffness_matrix(
num_lines: int,
pretension: float,
fairlead_radius: float,
fairlead_depth: float,
line_azimuth: np.ndarray,
weight_per_length: float
) -> np.ndarray:
"""
*See sub-skills for full details.*
### Example 4: Statistical Analysis of Extremes
```python
def extreme_value_statistics(
data: np.ndarray,
method: str = '3hr_max'
) -> dict:
"""
Perform extreme value statistical analysis.
Args:
data: Time series data
*See sub-skills for full details.*
### Example 5: Convolution for Impulse Response
```python
def convolve_impulse_response(
impulse_response: np.ndarray,
force_time_series: np.ndarray,
dt: float
) -> np.ndarray:
"""
Convolve impulse response with force time series.
Response(t) = ∫ h(τ) * F(t-τ) dτ
*See sub-skills for full details.*
## Resources
- **NumPy Documentation**: https://numpy.org/doc/
- **NumPy for MATLAB Users**: https://numpy.org/doc/stable/user/numpy-for-matlab-users.html
- **Linear Algebra**: https://numpy.org/doc/stable/reference/routines.linalg.html
- **FFT Module**: https://numpy.org/doc/stable/reference/routines.fft.html
- **SciPy (extends NumPy)**: https://scipy.org/
---
**Use this skill for all numerical computations in DigitalModel!**
## Sub-Skills
- [1. Array Creation and Operations (+1)](1-array-creation-and-operations/SKILL.md)
- [3. 6DOF Equations of Motion](3-6dof-equations-of-motion/SKILL.md)
- [4. FFT and Frequency Analysis](4-fft-and-frequency-analysis/SKILL.md)
- [5. Linear Algebra Operations](5-linear-algebra-operations/SKILL.md)
- [6. Numerical Integration](6-numerical-integration/SKILL.md)
- [1. Use Vectorization (+3)](1-use-vectorization/SKILL.md)
1---2name: numpy-numerical-analysis3description: NumPy for matrix operations, FFT, linear algebra, and numerical computations in marine engineering4---56# Numpy Numerical Analysis78## When to Use This Skill910Use NumPy numerical analysis when you need:11- **Matrix operations** - 6DOF equations of motion, mass matrices, stiffness matrices12- **FFT analysis** - Frequency domain analysis, spectral density, response spectra13- **Linear algebra** - Solve linear systems, eigenvalue analysis, matrix decomposition14- **Array operations** - Efficient computations on large datasets15- **Numerical integration** - Time-stepping, ODE solvers16- **Signal processing** - Filtering, windowing, convolution1718**Avoid when:**19- Symbolic mathematics needed (use SymPy)20- Sparse matrices dominate (use SciPy sparse)21- GPU acceleration required (use CuPy or JAX)22- Distributed computing needed (use Dask)2324## Complete Examples2526### Example 1: 6DOF Time-Domain Simulation2728```python29import numpy as np30import plotly.graph_objects as go3132def simulate_6dof_vessel_motion(33 mass_matrix: np.ndarray,34 damping_matrix: np.ndarray,35 stiffness_matrix: np.ndarray,36 force_time_series: np.ndarray,37 time: np.ndarray3839*See sub-skills for full details.*40### Example 2: RAO Calculation from FFT4142```python43def calculate_rao_from_time_series(44 wave_elevation: np.ndarray,45 vessel_response: np.ndarray,46 dt: float47) -> tuple[np.ndarray, np.ndarray]:48 """49 Calculate Response Amplitude Operator (RAO) from time series.5051 RAO(ω) = |Response(ω)| / |Wave(ω)|5253*See sub-skills for full details.*54### Example 3: Mooring Stiffness Matrix5556```python57def calculate_mooring_stiffness_matrix(58 num_lines: int,59 pretension: float,60 fairlead_radius: float,61 fairlead_depth: float,62 line_azimuth: np.ndarray,63 weight_per_length: float64) -> np.ndarray:65 """6667*See sub-skills for full details.*68### Example 4: Statistical Analysis of Extremes6970```python71def extreme_value_statistics(72 data: np.ndarray,73 method: str = '3hr_max'74) -> dict:75 """76 Perform extreme value statistical analysis.7778 Args:79 data: Time series data8081*See sub-skills for full details.*82### Example 5: Convolution for Impulse Response8384```python85def convolve_impulse_response(86 impulse_response: np.ndarray,87 force_time_series: np.ndarray,88 dt: float89) -> np.ndarray:90 """91 Convolve impulse response with force time series.9293 Response(t) = ∫ h(τ) * F(t-τ) dτ9495*See sub-skills for full details.*9697## Resources9899- **NumPy Documentation**: https://numpy.org/doc/100- **NumPy for MATLAB Users**: https://numpy.org/doc/stable/user/numpy-for-matlab-users.html101- **Linear Algebra**: https://numpy.org/doc/stable/reference/routines.linalg.html102- **FFT Module**: https://numpy.org/doc/stable/reference/routines.fft.html103- **SciPy (extends NumPy)**: https://scipy.org/104105---106107**Use this skill for all numerical computations in DigitalModel!**108109## Sub-Skills110111- [1. Array Creation and Operations (+1)](1-array-creation-and-operations/SKILL.md)112- [3. 6DOF Equations of Motion](3-6dof-equations-of-motion/SKILL.md)113- [4. FFT and Frequency Analysis](4-fft-and-frequency-analysis/SKILL.md)114- [5. Linear Algebra Operations](5-linear-algebra-operations/SKILL.md)115- [6. Numerical Integration](6-numerical-integration/SKILL.md)116- [1. Use Vectorization (+3)](1-use-vectorization/SKILL.md)