matrix_determinant
Calculate the determinant of a square matrix.
Args:
matrix: Square matrix (n x n)
Note:
Requires NumPy. Raises ValueError if NumPy is unavailable.
Examples:
matrix_determinant([[1, 2], [3, 4]])
matrix_determinant([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) # Identity matrix
matrix_inverse
Calculate the inverse of a square matrix.
Args:
matrix: Square matrix (n x n)
Note:
Requires NumPy. Raises ValueError if NumPy is unavailable.
Examples:
matrix_inverse([[1, 2], [3, 4]])
matrix_inverse([[2, 0], [0, 2]]) # Diagonal matrix
matrix_eigenvalues
Calculate the eigenvalues of a square matrix.
Args:
matrix: Square matrix (n x n)
Note:
Requires NumPy. Raises ValueError if NumPy is unavailable.
Examples:
matrix_eigenvalues([[4, 2], [1, 3]])
matrix_eigenvalues([[3, 0, 0], [0, 5, 0], [0, 0, 7]]) # Diagonal matrix
save_calculation
Save calculation to persistent workspace (survives restarts).
Examples:
save_calculation("portfolio_return", "10000 * 1.07^5", 14025.52)
save_calculation("circle_area", "pi * 5^2", 78.54)
load_variable
Load previously saved calculation result from workspace.
Examples:
load_variable("portfolio_return") # Returns saved calculation
load_variable("circle_area") # Access across sessions
plot_function
Generate mathematical function plots (requires matplotlib).
Args:
expression: Mathematical expression to plot (e.g., "x**2", "sin(x)")
x_range: Tuple of (min, max) for x-axis range
num_points: Number of points to plot (default: 100)
ctx: FastMCP context for logging
Examples:
plot_function("x**2", (-5, 5))
plot_function("sin(x)", (-3.14, 3.14))
create_histogram
Create statistical histograms (requires matplotlib).
Args:
data: List of numerical values
bins: Number of histogram bins (default: 20)
title: Chart title
ctx: FastMCP context for logging
Examples:
create_histogram([1.0, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0])
create_histogram([10, 20, 30, 40, 50], bins=5, title="Test Scores")
plot_line_chart
Create a line chart from data points (requires matplotlib).
Args:
x_data: X-axis data points
y_data: Y-axis data points
title: Chart title
x_label: X-axis label
y_label: Y-axis label
color: Line color (name or hex code, e.g., 'blue', '#2E86AB')
show_grid: Whether to show grid lines
ctx: FastMCP context for logging
Note:
Use for general XY data. For time-series price data with optional moving average, use plot_financial_line instead.
Examples:
plot_line_chart([1, 2, 3, 4], [1, 4, 9, 16], title="Squares")
plot_line_chart([0, 1, 2], [0, 1, 4], color='red', x_label='Time', y_label='Distance')
plot_scatter_chart
Create a scatter plot from data points (requires matplotlib).
Args:
x_data: X-axis data points
y_data: Y-axis data points
title: Chart title
x_label: X-axis label
y_label: Y-axis label
color: Point color (name or hex code, e.g., 'blue', '#2E86AB')
point_size: Size of scatter points (default: 50)
ctx: FastMCP context for logging
Examples:
plot_scatter_chart([1, 2, 3, 4], [1, 4, 9, 16], title="Correlation Study")
plot_scatter_chart([1, 2, 3], [2, 4, 5], color='purple', point_size=100)
plot_box_plot
Create a box plot for comparing distributions (requires matplotlib).
Args:
data_groups: List of data groups to compare
group_labels: Optional labels for each group
title: Chart title
y_label: Y-axis label
color: Box color (name or hex code, e.g., 'blue', '#2E86AB')
ctx: FastMCP context for logging
Examples:
plot_box_plot([[1, 2, 3, 4, 5], [2, 4, 6, 8, 10]], group_labels=["A", "B"])
plot_box_plot([[10, 20, 30], [15, 25, 35], [5, 15, 25]], title="Comparison")
plot_financial_line
Generate and plot synthetic financial price data (requires matplotlib).
Creates realistic price movement patterns for educational purposes.
Does not use real market data.
Args:
days: Number of days to generate (default: 30)
trend: Market trend ('bullish', 'bearish', or 'volatile')
start_price: Starting price value (default: 100.0)
color: Line color (name or hex code, e.g., 'blue', '#2E86AB')
ctx: FastMCP context for logging
Note:
Use for time-series price data with optional moving average overlay. For general XY data, use plot_line_chart instead.
Examples:
plot_financial_line(days=60, trend='bullish')
plot_financial_line(days=90, trend='volatile', start_price=150.0, color='orange')