0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Wolfram|AlphaとPythonコード

Last updated at Posted at 2024-12-20
# Arithmetic Sequence: 等差数列を生成する関数
def arithmetic_sequence(a, d, n):
    """
    Generate an arithmetic sequence (等差数列を生成)
    :param a: First term (初項)
    :param d: Common difference (公差)
    :param n: Number of terms (項数)
    :return: List of arithmetic sequence (等差数列のリスト)
    """
    return [a + d * i for i in range(n)]

# Geometric Sequence: 等比数列を生成する関数
def geometric_sequence(a, r, n):
    """
    Generate a geometric sequence (等比数列を生成)
    :param a: First term (初項)
    :param r: Common ratio (公比)
    :param n: Number of terms (項数)
    :return: List of geometric sequence (等比数列のリスト)
    """
    return [a * r**i for i in range(n)]

# Examples of arithmetic sequences (等差数列の例)
print("Arithmetic Sequences (等差数列):")
arithmetic_seq_1 = arithmetic_sequence(1, 1, 10)  # First term 1, common difference 1, 10 terms (初項1, 公差1, 10項)
arithmetic_seq_2 = arithmetic_sequence(3, 2, 10)  # First term 3, common difference 2, 10 terms (初項3, 公差2, 10項)
print(f"First term 1, Common difference 1: {arithmetic_seq_1}")
print(f"First term 3, Common difference 2: {arithmetic_seq_2}")

# Examples of geometric sequences (等比数列の例)
print("\nGeometric Sequences (等比数列):")
geometric_seq_1 = geometric_sequence(1, 2, 10)  # First term 1, common ratio 2, 10 terms (初項1, 公比2, 10項)
geometric_seq_2 = geometric_sequence(5, 3, 10)  # First term 5, common ratio 3, 10 terms (初項5, 公比3, 10項)
geometric_seq_3 = geometric_sequence(1, -1, 10) # First term 1, common ratio -1, 10 terms (初項1, 公比-1, 10項)
print(f"First term 1, Common ratio 2: {geometric_seq_1}")
print(f"First term 5, Common ratio 3: {geometric_seq_2}")
print(f"First term 1, Common ratio -1: {geometric_seq_3}")

import numpy as np
import matplotlib.pyplot as plt

# 定義域の設定(x > 0 を考慮)
x = np.linspace(0.1, 10, 500)  # x > 0 の範囲(0.1から10まで)

# 関数の定義
y = x**2 * np.log(x)

# 通常のグラフ
plt.figure(figsize=(8, 6))
plt.plot(x, y, label=r"$x^2 \log x$", color="blue")
plt.title("Graph of $x^2 \log x$")
plt.xlabel("x")
plt.ylabel("y")
plt.axhline(0, color="black", linewidth=0.8, linestyle="--")
plt.grid()
plt.legend()
plt.show()

# x 軸対数スケールのグラフ
plt.figure(figsize=(8, 6))
plt.plot(x, y, label=r"$x^2 \log x$", color="green")
plt.xscale("log")  # x 軸を対数スケールに変更
plt.title("Graph of $x^2 \log x$ (Logarithmic x-axis)")
plt.xlabel("x (log scale)")
plt.ylabel("y")
plt.axhline(0, color="black", linewidth=0.8, linestyle="--")
plt.grid()
plt.legend()
plt.show()

# 両対数スケールのグラフ
plt.figure(figsize=(8, 6))
plt.plot(x, y, label=r"$x^2 \log x$", color="red")
plt.xscale("log")  # x 軸を対数スケールに変更
plt.yscale("log")  # y 軸を対数スケールに変更
plt.title("Graph of $x^2 \log x$ (Log-Log Scale)")
plt.xlabel("x (log scale)")
plt.ylabel("y (log scale)")
plt.grid()
plt.legend()
plt.show()

import sympy as sp
import numpy as np
import matplotlib.pyplot as plt

# Define variables
x, k = sp.symbols('x k')

# Define the function
f = x**2 * (k - x)

# Compute the derivative
f_derivative = sp.diff(f, x)

# Solve f(x) = 0 (roots of the function)
f_zeros = sp.solve(f, x)

# Solve f'(x) = 0 (roots of the derivative)
f_derivative_zeros = sp.solve(f_derivative, x)

# Display the solutions (symbolic form)
print("Solutions where f(x) = 0 (symbolic):")
print(f_zeros)

print("\nSolutions where f'(x) = 0 (symbolic):")
print(f_derivative_zeros)

# Substitute a specific value for k (e.g., k = 10)
k_value = 10

# Evaluate symbolic solutions with specific k (keep symbolic roots)
f_zeros_symbolic = [sol.subs(k, k_value) for sol in f_zeros]
f_derivative_zeros_symbolic = [sol.subs(k, k_value) for sol in f_derivative_zeros]

print("\nSolutions where f(x) = 0 (with k = 10):")
print(f_zeros_symbolic)

print("\nSolutions where f'(x) = 0 (with k = 10):")
print(f_derivative_zeros_symbolic)

# Convert symbolic functions to numerical for plotting
f_numeric = sp.lambdify(x, f.subs(k, k_value), 'numpy')
f_derivative_numeric = sp.lambdify(x, f_derivative.subs(k, k_value), 'numpy')

# Define x range
x_values = np.linspace(0, k_value, 500)

# Compute the function and its derivative
f_values = f_numeric(x_values)
f_derivative_values = f_derivative_numeric(x_values)

# Plot the function and its derivative
plt.figure(figsize=(8, 6))
plt.plot(x_values, f_values, label="f(x) = $x^2(k-x)$", color="blue")
plt.plot(x_values, f_derivative_values, label="f'(x)", color="red", linestyle="--")
plt.axhline(0, color="black", linewidth=0.8, linestyle=":")
plt.scatter([float(sol) for sol in f_zeros_symbolic], [0]*len(f_zeros_symbolic), color='green', label="f(x) = 0")
plt.scatter([float(sol) for sol in f_derivative_zeros_symbolic], [0]*len(f_derivative_zeros_symbolic), color='purple', label="f'(x) = 0")
plt.title("Function and its Derivative with Zeros")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.grid()
plt.show()
import numpy as np
import matplotlib.pyplot as plt

# 1. Integer, Fraction, Decimal, Exponentiation Calculations
integer_example = 5 * 4  # Integer multiplication
fraction_example = 3/4  # Fraction
decimal_example = 0.25  # Decimal
exponentiation_example = 2**3  # Exponentiation (2 raised to the power of 3)

print(f"Integer Example: {integer_example}")
print(f"Fraction Example: {fraction_example}")
print(f"Decimal Example: {decimal_example}")
print(f"Exponentiation Example: {exponentiation_example}")

# 2. Equation and Inequality (Solving equation: x + 3 = 7)
from sympy import symbols, Eq, solve
x = symbols('x')
equation = Eq(x + 3, 7)  # x + 3 = 7
solution = solve(equation, x)
print(f"Solution to the equation x + 3 = 7: x = {solution}")

# Inequality: x > 5
inequality = x > 5
print(f"Inequality x > 5 is: {inequality}")

# 3. Basic Algebraic Operations (Addition, Subtraction, Multiplication, Division)
a, b = 7, 2
addition = a + b
subtraction = a - b
multiplication = a * b
division = a / b

print(f"Addition: {addition}")
print(f"Subtraction: {subtraction}")
print(f"Multiplication: {multiplication}")
print(f"Division: {division}")

# 4. Expanding and Factoring Expressions (Using symbolic math)
from sympy import expand, factor
expression = (x + 2)*(x + 3)  # Expand (x + 2)(x + 3)
expanded_expression = expand(expression)
factored_expression = factor(expanded_expression)
print(f"Expanded expression: {expanded_expression}")
print(f"Factored expression: {factored_expression}")

# 5. Functions and Graphs

# 5.1 Linear Function (y = 2x + 1)
def linear_function(x):
    return 2 * x + 1

# 5.2 Quadratic Function (y = x^2 - 4x + 3)
def quadratic_function(x):
    return x**2 - 4*x + 3

# 5.3 Inverse Proportional Function (y = 1/x)
def inverse_proportional_function(x):
    return 1/x

# 5.4 Exponential Function (y = 2^x)
def exponential_function(x):
    return 2**x

# 5.5 Logarithmic Function (y = log(x))
def logarithmic_function(x):
    return np.log(x)

# Create an array of x values
x_values = np.linspace(-5, 5, 400)
x_values_for_log_exp = np.linspace(0.1, 5, 400)  # log and exponential cannot handle x = 0

# Plot functions
plt.figure(figsize=(10, 8))

# Linear Function Plot
plt.subplot(3, 2, 1)
plt.plot(x_values, linear_function(x_values), label="y = 2x + 1", color="blue")
plt.title('Linear Function: y = 2x + 1')
plt.grid(True)

# Quadratic Function Plot
plt.subplot(3, 2, 2)
plt.plot(x_values, quadratic_function(x_values), label="y = x^2 - 4x + 3", color="green")
plt.title('Quadratic Function: y = x^2 - 4x + 3')
plt.grid(True)

# Inverse Proportional Function Plot
plt.subplot(3, 2, 3)
plt.plot(x_values[x_values != 0], inverse_proportional_function(x_values[x_values != 0]), label="y = 1/x", color="red")
plt.title('Inverse Proportional Function: y = 1/x')
plt.grid(True)

# Exponential Function Plot
plt.subplot(3, 2, 4)
plt.plot(x_values_for_log_exp, exponential_function(x_values_for_log_exp), label="y = 2^x", color="purple")
plt.title('Exponential Function: y = 2^x')
plt.grid(True)

# Logarithmic Function Plot
plt.subplot(3, 2, 5)
plt.plot(x_values_for_log_exp, logarithmic_function(x_values_for_log_exp), label="y = log(x)", color="orange")
plt.title('Logarithmic Function: y = log(x)')
plt.grid(True)

plt.tight_layout()
plt.show()
import math

# Function to convert degrees to radians
def degrees_to_radians(degrees):
    return degrees * (math.pi / 180)

# Function to convert radians to degrees
def radians_to_degrees(radians):
    return radians * (180 / math.pi)

# Example usage
degrees = 180
radians = degrees_to_radians(degrees)
converted_degrees = radians_to_degrees(radians)

print(f"{degrees} degrees is equal to {radians:.2f} radians.")
print(f"{radians:.2f} radians is equal to {converted_degrees:.2f} degrees.")

# Define the number
number = 59049

# Calculate the 5th root
fifth_root = number ** (1/5)

# Display the result
print(f"The 5th root of {number} is {fifth_root:.2f}")
from scipy.optimize import fsolve

# Define the function
def f(x):
    return x**2 - 4

# Find the root
root = fsolve(f, x0=1)  # Initial guess x0 = 1
print(f"Root: {root[0]}")

import matplotlib.pyplot as plt
import numpy as np

# Line 1: Passes through (1, 6) with a slope of 4
x1, y1, m1 = 1, 6, 4  # point (1,6) and slope 4
# Equation: y = m1*x + b1
b1 = y1 - m1 * x1  # Calculate intercept
line1_eq = f"y = {m1}x + {b1}"

# Line 2: Passes through (6, 1) with an intercept of -5
x2, y2, b2 = 6, 1, -5  # point (6,1) and intercept -5
# Equation: y = m2*x + b2
m2 = (y2 - b2) / x2  # Calculate slope
line2_eq = f"y = {m2:.2f}x + {b2}"

# Define x values for plotting
x = np.linspace(-10, 10, 500)

# Calculate y values for both lines
y1 = m1 * x + b1
y2 = m2 * x + b2

# Plot the lines
plt.figure(figsize=(8, 6))
plt.plot(x, y1, label=f"Line 1: {line1_eq}", color="blue")
plt.plot(x, y2, label=f"Line 2: {line2_eq}", color="red")

# Plot the points
plt.scatter([1, 6], [6, 1], color="black", label="Given Points")
plt.text(1, 6, "(1,6)", fontsize=10, ha='right')
plt.text(6, 1, "(6,1)", fontsize=10, ha='right')

# Add grid, legend, and labels
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.grid(True)
plt.title("Lines Based on Given Conditions")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()
plt.show()
import matplotlib.pyplot as plt
import math

# Coordinates of the points
x1, y1 = 1, 2
x2, y2 = 4, 6

# Calculate the distance
distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)

# Plot the points
plt.figure(figsize=(6, 6))
plt.plot([x1, x2], [y1, y2], 'ro-', label=f"Distance: {distance:.2f}")
plt.text(x1, y1, f"({x1}, {y1})", fontsize=10, ha='right')
plt.text(x2, y2, f"({x2}, {y2})", fontsize=10, ha='left')

# Add grid and labels
plt.grid(True)
plt.title("Distance Between Points")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.axhline(0, color='black',linewidth=0.5)
plt.axvline(0, color='black',linewidth=0.5)
plt.legend()
plt.show()

import sympy as sp
import numpy as np
import matplotlib.pyplot as plt

# Define the variables
x, y = sp.symbols('x y')

# Define the polynomial
polynomial = x**4 + 2*x**3*y - 2*x*y**3 - y**4

# Factorize the polynomial
factors = sp.factor(polynomial)
print(f"Factorized polynomial: {factors}")

# Convert the polynomial to a lambda function for plotting
f_lambda = sp.lambdify((x, y), polynomial, 'numpy')

# Generate a grid of x and y values
x_vals = np.linspace(-2, 2, 400)
y_vals = np.linspace(-2, 2, 400)
x_grid, y_grid = np.meshgrid(x_vals, y_vals)

# Evaluate the polynomial on the grid
z_vals = f_lambda(x_grid, y_grid)

# Plot the polynomial
plt.figure(figsize=(8, 6))
plt.contourf(x_grid, y_grid, z_vals, levels=50, cmap='viridis')
plt.colorbar(label='Polynomial Value')
plt.title(r"$x^4 + 2x^3y - 2xy^3 - y^4$")
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.show()


import numpy as np
import matplotlib.pyplot as plt

# Define the coefficients of the quadratic equation
a = -1  # Coefficient of x^2
b = 2   # Coefficient of x
c = 8   # Constant term

# Calculate the vertex
x_vertex = -b / (2 * a)
y_vertex = a * x_vertex**2 + b * x_vertex + c
vertex = (x_vertex, y_vertex)
print(f"Vertex of the parabola: {vertex}")

# Define the quadratic function
def quadratic(x):
    return a * x**2 + b * x + c

# Generate x values for plotting
x_vals = np.linspace(-2, 4, 500)
y_vals = quadratic(x_vals)

# Plot the parabola and the vertex
plt.figure(figsize=(8, 6))
plt.plot(x_vals, y_vals, label=r"$y = -x^2 + 2x + 8$", color="blue")
plt.scatter(*vertex, color="red", label="Vertex", zorder=5)
plt.title("Parabola and its Vertex")
plt.xlabel("x")
plt.ylabel("y")
plt.axhline(0, color="black", linewidth=0.5, linestyle="--")
plt.axvline(0, color="black", linewidth=0.5, linestyle="--")
plt.legend()
plt.grid(True)
plt.show()

import sympy as sp

# Define the expression
x = sp.Symbol('x')
expr = 1 / (3 - sp.sqrt(5))

# Rationalize the denominator
rationalized_expr = sp.simplify(expr)
print(f"Original expression: {expr}")
print(f"Rationalized expression: {rationalized_expr}")


import sympy as sp

# Define the variable
x = sp.Symbol('x')

# Define the inequality
inequality = 2 * sp.Abs(x**2 + 2*x - 3) - 3 * sp.Abs(x - 1) - (2*x + 3) > 0

# Solve the inequality
solution = sp.solveset(inequality, x, domain=sp.S.Reals)

# Print the solution
print(f"Solution to the inequality: {solution}")

import sympy as sp

# Define the variable
theta = sp.Symbol('theta', real=True)

# Define the function
f = sp.sin(theta)**3 + sp.cos(theta)**3

# Calculate the derivative
df = sp.diff(f, theta)

# Solve for critical points
critical_points = sp.solveset(df, theta, domain=sp.Interval(0, 2*sp.pi))

# Evaluate the function at critical points and endpoints
points = list(critical_points) + [0, 2*sp.pi]
values = [f.subs(theta, point).evalf() for point in points]

# Find the maximum and minimum values
max_value = max(values)
min_value = min(values)

print(f"Critical points: {critical_points}")
print(f"Function values at critical points and endpoints: {values}")
print(f"Maximum value: {max_value}")
print(f"Minimum value: {min_value}")

import sympy as sp
import numpy as np
import matplotlib.pyplot as plt

# Define the variable and function
x = sp.Symbol('x', positive=True, real=True)  # x > 0
f = sp.log(x) / x**2

# Calculate the derivative
df = sp.diff(f, x)

# Solve for critical points
critical_points = sp.solveset(df, x, domain=sp.Interval(0.1, sp.oo))

# Find the maximum value
critical_values = [f.subs(x, point).evalf() for point in critical_points]
max_value = max(critical_values)
max_point = [point for point in critical_points if f.subs(x, point).evalf() == max_value][0]

print(f"Critical points: {critical_points}")
print(f"Maximum value: {max_value} at x = {max_point}")

# Plot the function
x_vals = np.linspace(0.1, 5, 500)  # Avoid x = 0 for logarithm
y_vals = np.log(x_vals) / x_vals**2

plt.figure(figsize=(8, 6))
plt.plot(x_vals, y_vals, label=r"$f(x) = \frac{\log(x)}{x^2}$", color="blue")
plt.scatter([float(max_point)], [float(max_value)], color="red", label="Maximum Point", zorder=5)
plt.axhline(0, color="black", linewidth=0.5, linestyle="--")
plt.axvline(float(max_point), color="red", linestyle="--", label=f"x = {float(max_point):.2f}")
plt.title("Function and Maximum Point")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.grid(True)
plt.legend()
plt.show()

import sympy as sp

# Define the variable
x = sp.Symbol('x')

# Define the functions
f = x**4 * sp.sin(x)
g = x**3 - x + 3

# Compute the derivative of x^4 * sin(x)
derivative_f = sp.diff(f, x)
print(f"Derivative of x^4 * sin(x): {derivative_f}")

# Compute the definite integral of x^3 - x + 3 from 0 to 2
definite_integral_g = sp.integrate(g, (x, 0, 2))
print(f"Definite integral of (x^3 - x + 3) from 0 to 2: {definite_integral_g}")

import sympy as sp

# Define the variable
x = sp.Symbol('x')

# Define the function
expr = (sp.sin(x) - x) / x**3

# Compute the limit as x approaches 0
limit_expr = sp.limit(expr, x, 0)
print(f"Limit of (sin(x) - x) / x^3 as x -> 0: {limit_expr}")

import sympy as sp

# Define the variable
z = sp.Symbol('z')

# Define the equation
equation = z**6 + 27

# Solve the equation
solutions = sp.solveset(equation, z, domain=sp.S.Complexes)

# Print the solutions
print(f"Complex solutions of z^6 + 27 = 0: {solutions}")

# Generate the sequence of squares
n_terms = 10  # Number of terms to generate
sequence = [n**2 for n in range(1, n_terms + 1)]

# Print the sequence
print(f"The first {n_terms} terms of the sequence are: {sequence}")

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# Define the vectors
vector1 = np.array([1, 3, -1])
vector2 = np.array([-2, 1, 6])
vector_sum = vector1 + vector2

# Create a 3D plot
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')

# Plot vector1
ax.quiver(0, 0, 0, vector1[0], vector1[1], vector1[2], color='blue', label='(1, 3, -1)', arrow_length_ratio=0.1)

# Plot vector2
ax.quiver(0, 0, 0, vector2[0], vector2[1], vector2[2], color='green', label='(-2, 1, 6)', arrow_length_ratio=0.1)

# Plot vector_sum
ax.quiver(0, 0, 0, vector_sum[0], vector_sum[1], vector_sum[2], color='red', label='Sum (-1, 4, 5)', arrow_length_ratio=0.1)

# Set plot limits
ax.set_xlim([-3, 3])
ax.set_ylim([-3, 5])
ax.set_zlim([-3, 7])

# Set labels and legend
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')
ax.set_title('Vector Addition in 3D Space')
ax.legend()

# Show the plot
plt.show()

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# Define the vectors
vector1 = np.array([8, 3, -1])  # (8i + 3j - k)
vector2 = np.array([1, -1, 2])  # (i - j + 2k)

# Compute the cross product
cross_product = np.cross(vector1, vector2)

# Print the cross product
print(f"Cross product of (8i + 3j - k) and (i - j + 2k): {cross_product}")

# Create a 3D plot
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')

# Plot vector1
ax.quiver(0, 0, 0, vector1[0], vector1[1], vector1[2], color='blue', label='(8i + 3j - k)', arrow_length_ratio=0.1)

# Plot vector2
ax.quiver(0, 0, 0, vector2[0], vector2[1], vector2[2], color='green', label='(i - j + 2k)', arrow_length_ratio=0.1)

# Plot the cross product
ax.quiver(0, 0, 0, cross_product[0], cross_product[1], cross_product[2], color='red', label='Cross Product', arrow_length_ratio=0.1)

# Set plot limits
ax.set_xlim([-20, 20])
ax.set_ylim([-20, 20])
ax.set_zlim([-20, 20])

# Set labels and legend
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')
ax.set_title('Cross Product of Two Vectors')
ax.legend()

# Show the plot
plt.show()

import math

# Function to calculate GCD
def compute_gcd(a, b):
    return math.gcd(a, b)

# Function to calculate LCM
def compute_lcm(a, b):
    return abs(a * b) // compute_gcd(a, b)  # LCM formula: |a * b| / GCD(a, b)

# Input numbers
num1 = 12
num2 = 18

# Calculate GCD and LCM
gcd_result = compute_gcd(num1, num2)
lcm_result = compute_lcm(num1, num2)

# Output the results
print(f"The GCD of {num1} and {num2} is: {gcd_result}")
print(f"The LCM of {num1} and {num2} is: {lcm_result}")


import numpy as np
import matplotlib.pyplot as plt

# Define the system of linear equations
# Example: 
# 2x + y = 5
# x - y = 1
A = np.array([[2, 1],  # Coefficients of x and y for the first equation
              [1, -1]])  # Coefficients of x and y for the second equation
B = np.array([5, 1])  # Constants on the right-hand side

# Solve the system of equations Ax = B
solution = np.linalg.solve(A, B)
x, y = solution

print("Solution:")
print(f"x = {x}, y = {y}")

# Plot the equations and the solution
x_vals = np.linspace(-1, 5, 500)  # Range of x values for plotting
y1 = (5 - 2 * x_vals)  # Rearrange first equation: y = (5 - 2x)
y2 = (x_vals - 1)      # Rearrange second equation: y = (x - 1)

plt.figure(figsize=(8, 6))
plt.plot(x_vals, y1, label="2x + y = 5", color="blue")
plt.plot(x_vals, y2, label="x - y = 1", color="red")
plt.scatter(x, y, color="black", label=f"Solution: ({x:.2f}, {y:.2f})", zorder=5)
plt.axhline(0, color="black", linewidth=0.5, linestyle="--")
plt.axvline(0, color="black", linewidth=0.5, linestyle="--")
plt.grid(color="gray", linestyle="--", linewidth=0.5)
plt.title("Graphical Solution of Linear Equations")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.show()


import numpy as np
import matplotlib.pyplot as plt

# Define the Gaussian function
def gaussian(x):
    return np.exp(-x**2)

# Analytical Fourier Transform result
def analytical_ft(w):
    return np.exp(-w**2 / 4) / np.sqrt(2)

# Define the range and sampling parameters
x = np.linspace(-10, 10, 2048)  # Range of x values
dx = x[1] - x[0]  # Sampling interval in x
f_x = gaussian(x)  # Evaluate the Gaussian function

# Compute the FFT of the Gaussian function
fft_gaussian = np.fft.fft(f_x)  # FFT computation
fft_gaussian = np.fft.fftshift(fft_gaussian)  # Shift the zero frequency to the center
freq = np.fft.fftfreq(len(x), dx)  # Frequency axis
freq = np.fft.fftshift(freq)  # Shift zero frequency to center

# Scale FFT by the factor for continuous Fourier Transform
fft_gaussian_scaled = fft_gaussian * dx / np.sqrt(2 * np.pi)

# Compute the analytical Fourier Transform for comparison
analytical_values = analytical_ft(2 * np.pi * freq)  # Convert FFT frequencies to angular frequency

# Plot the original Gaussian function
plt.figure(figsize=(12, 8))
plt.subplot(2, 1, 1)
plt.plot(x, f_x, label="Gaussian $e^{-x^2}$", color="blue")
plt.title("Original Gaussian Function")
plt.xlabel("x")
plt.ylabel("Amplitude")
plt.grid()
plt.legend()

# Plot the magnitude of the FFT vs Analytical Fourier Transform
plt.subplot(2, 1, 2)
plt.plot(freq, np.abs(fft_gaussian_scaled), label="FFT of Gaussian", color="blue")
plt.plot(freq, analytical_values, label="Analytical Fourier Transform", color="red", linestyle="--")
plt.title("Fourier Transform of $e^{-x^2}$")
plt.xlabel("Frequency (Hz)")
plt.ylabel("Amplitude")
plt.grid()
plt.legend()

plt.tight_layout()
plt.show()


import numpy as np
import matplotlib.pyplot as plt

# Define the range for t
t = np.linspace(0, 2 * np.pi, 1000)

# Parametric equations
x = np.sin(10 * t)
y = np.sin(8 * t)

# Plot the parametric curve
plt.figure(figsize=(8, 6))
plt.plot(x, y, label=r"$x = \sin(10t), y = \sin(8t)$")
plt.title("Parametric Plot of (sin(10t), sin(8t))")
plt.xlabel("x = sin(10t)")
plt.ylabel("y = sin(8t)")
plt.axhline(0, color='black', linewidth=0.5, linestyle='--')
plt.axvline(0, color='black', linewidth=0.5, linestyle='--')
plt.grid(True)
plt.legend()
plt.show()
import numpy as np
import matplotlib.pyplot as plt

# 定数を設定
v = 10  # 初速度 (例: 10 m/s)
g = 9.8  # 重力加速度 (例: 9.8 m/s^2)
beta = np.radians(30)  # 角度 β (例: 30度をラジアンに変換)

# α の範囲を設定 (0度から90度)
alpha_degrees = np.linspace(0, 90, 500)
alpha = np.radians(alpha_degrees)  # 度をラジアンに変換

# 式を計算
numerator = 2 * v**2 * np.cos(alpha)**2 * (np.tan(alpha) + np.tan(beta))
denominator = g * np.cos(beta)
result = numerator / denominator

# プロット
plt.figure(figsize=(8, 6))
plt.plot(alpha_degrees, result, label=r"$\frac{2v^2 \cos^2\alpha (\tan\alpha + \tan\beta)}{g \cos\beta}$", color="blue")
plt.title("Horizontal Range as a Function of $\\alpha$")
plt.xlabel(r"$\alpha$ (degrees)")
plt.ylabel("Result")
plt.axhline(0, color="black", linewidth=0.8, linestyle="--")
plt.grid()
plt.legend()
plt.show()

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import pearsonr
from sympy import symbols, solve, Eq

# 1. 数と集合 (簡単な無理数の計算, 集合と命題)
def calculate_irrational():
    # 無理数の例: √2 の計算
    print(f"√2 = {np.sqrt(2)}")
    
def set_operations():
    # 集合の例
    A = {1, 2, 3}
    B = {2, 3, 4}
    print(f"A ∪ B = {A.union(B)}")
    print(f"A ∩ B = {A.intersection(B)}")

# 2. 式の展開と因数分解
def expand_and_factorize():
    x = symbols('x')
    expression = (x + 2) * (x - 3)
    expanded = expression.expand()
    factored = expanded.factor()
    print(f"展開: {expanded}")
    print(f"因数分解: {factored}")

# 3. 一次不等式の解
def solve_linear_inequality():
    x = symbols('x')
    inequality = Eq(2 * x + 3, 7)
    solution = solve(inequality, x)
    print(f"一次方程式の解: x = {solution}")

# 4. 三角比 (鋭角, 鈍角, 正弦定理, 余弦定理)
def triangle_properties():
    angle = np.radians(45)  # 角度 45 度
    sin_val = np.sin(angle)
    cos_val = np.cos(angle)
    print(f"sin(45°) = {sin_val}")
    print(f"cos(45°) = {cos_val}")

# 5. 二次関数の最大・最小とグラフ
def quadratic_function():
    x = np.linspace(-10, 10, 1000)
    y = x**2 - 4 * x + 5
    plt.figure()
    plt.plot(x, y, label='y = x^2 - 4x + 5')
    plt.title("Quadratic Function")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.grid()
    plt.legend()
    plt.show()

# 6. データの分析 (データの散らばり, 分散, 相関係数)
def analyze_data():
    data_x = [1, 2, 3, 4, 5]
    data_y = [2, 4, 6, 8, 10]
    variance = np.var(data_y)
    std_dev = np.std(data_y)
    correlation, _ = pearsonr(data_x, data_y)
    print(f"分散: {variance}")
    print(f"標準偏差: {std_dev}")
    print(f"相関係数: {correlation}")

# 7. 散布図
    plt.scatter(data_x, data_y, color='blue')
    plt.title("Scatter Plot")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.grid()
    plt.show()

# 実行
if __name__ == "__main__":
    print("# 1. 数と集合")
    calculate_irrational()
    set_operations()

    print("\n# 2. 式の展開と因数分解")
    expand_and_factorize()

    print("\n# 3. 一次不等式の解")
    solve_linear_inequality()

    print("\n# 4. 三角比")
    triangle_properties()

    print("\n# 5. 二次関数")
    quadratic_function()

    print("\n# 6. データの分析")
    analyze_data()
import numpy as np
import matplotlib.pyplot as plt
from sympy import symbols, Eq, solve, diff, integrate, pi, cos, sin, exp, log

# 1. 多項式の乗法・除法、分数式
def polynomial_operations():
    x = symbols('x')
    poly1 = x**2 + 2*x + 1
    poly2 = x + 1
    product = poly1 * poly2
    division = poly1 / poly2
    print(f"多項式の乗法: {product}")
    print(f"多項式の除法: {division}")
    
    # プロット
    x_vals = np.linspace(-10, 10, 400)
    poly1_func = np.vectorize(lambda x_val: poly1.subs(x, x_val))
    poly2_func = np.vectorize(lambda x_val: poly2.subs(x, x_val))
    plt.figure()
    plt.plot(x_vals, poly1_func(x_vals), label='poly1', color='blue')
    plt.plot(x_vals, poly2_func(x_vals), label='poly2', color='orange')
    plt.title("Polynomial Functions")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.legend()
    plt.grid()
    plt.show()

# 2. 二項定理
def binomial_theorem():
    n, x, y = symbols('n x y')
    binomial = (x + y)**3  # Example for n=3
    expanded = binomial.expand()
    print(f"二項定理展開: {expanded}")

# 3. 等式と不等式の証明
def equality_proof():
    x = symbols('x')
    eq = Eq(2*x + 3, 7)
    solution = solve(eq, x)
    print(f"等式の解: x = {solution}")

# 4. 高次方程式
def solve_high_order_equation():
    x = symbols('x')
    eq = Eq(x**3 - 6*x**2 + 11*x - 6, 0)
    solutions = solve(eq, x)
    print(f"高次方程式の解: {solutions}")

    # プロット
    x_vals = np.linspace(0, 4, 400)
    func = lambda x_val: x_val**3 - 6*x_val**2 + 11*x_val - 6
    y_vals = func(x_vals)
    plt.figure()
    plt.plot(x_vals, y_vals, label='x^3 - 6x^2 + 11x - 6', color='green')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.title("Cubic Function")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.grid()
    plt.legend()
    plt.show()

# 5. 直線と円
def line_and_circle():
    x, y = symbols('x y')
    line_eq = Eq(2*x + y - 4, 0)
    circle_eq = Eq(x**2 + y**2 - 4, 0)
    intersection = solve([line_eq, circle_eq], (x, y))
    print(f"直線と円の交点: {intersection}")

    # プロット
    theta = np.linspace(0, 2 * np.pi, 500)
    circle_x = 2 * np.cos(theta)
    circle_y = 2 * np.sin(theta)
    line_x = np.linspace(-2, 2, 500)
    line_y = 4 - 2 * line_x
    plt.figure()
    plt.plot(circle_x, circle_y, label='Circle: x^2 + y^2 = 4', color='blue')
    plt.plot(line_x, line_y, label='Line: 2x + y = 4', color='red')
    plt.scatter(*zip(*[(float(pt[0]), float(pt[1])) for pt in intersection]), color='black', zorder=5)
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
    plt.legend()
    plt.grid()
    plt.xlabel("x")
    plt.ylabel("y")
    plt.title("Intersection of Line and Circle")
    plt.show()

# 6. 指数関数と対数関数
def exponential_and_logarithmic():
    x = symbols('x')
    exp_func = exp(x)
    log_func = log(x)
    print(f"指数関数: e^x = {exp_func}")
    print(f"対数関数: log(x) = {log_func}")

    # プロット
    x_vals = np.linspace(0.1, 5, 400)
    exp_vals = np.exp(x_vals)
    log_vals = np.log(x_vals)
    plt.figure()
    plt.plot(x_vals, exp_vals, label='e^x', color='purple')
    plt.plot(x_vals, log_vals, label='log(x)', color='orange')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
    plt.legend()
    plt.title("Exponential and Logarithmic Functions")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.grid()
    plt.show()

# 7. 三角関数の加法定理と2倍角の公式
def trigonometric_properties():
    angle = np.linspace(0, 2 * np.pi, 500)
    cos_vals = np.cos(angle)
    sin_vals = np.sin(angle)
    plt.figure()
    plt.plot(angle, cos_vals, label='cos(x)', color='blue')
    plt.plot(angle, sin_vals, label='sin(x)', color='red')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
    plt.title("Trigonometric Functions")
    plt.xlabel("Angle (radians)")
    plt.ylabel("Value")
    plt.legend()
    plt.grid()
    plt.show()

# 8. 微分と積分
def differentiation_and_integration():
    x = symbols('x')
    func = x**3 - 3*x**2 + 2*x
    derivative = diff(func, x)
    integral = integrate(func, x)
    print(f"微分: {derivative}")
    print(f"積分: {integral}")

    # プロット
    x_vals = np.linspace(-1, 3, 400)
    func_vals = [func.subs(x, val) for val in x_vals]
    derivative_vals = [derivative.subs(x, val) for val in x_vals]
    plt.figure()
    plt.plot(x_vals, func_vals, label='Original Function', color='blue')
    plt.plot(x_vals, derivative_vals, label='Derivative', color='red', linestyle='--')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.title("Function and Derivative")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.legend()
    plt.grid()
    plt.show()

# 9. 面積計算
def area_under_curve():
    x = symbols('x')
    curve = x**2
    area = integrate(curve, (x, 0, 2))  # Example: From x=0 to x=2
    print(f"面積: {area}")

    # プロット
    x_vals = np.linspace(0, 2, 400)
    y_vals = x_vals**2
    plt.figure()
    plt.plot(x_vals, y_vals, label='$y = x^2$', color='blue')
    plt.fill_between(x_vals, y_vals, color='blue', alpha=0.2)
    plt.title("Area Under Curve")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.grid()
    plt.legend()
    plt.show()

# 実行
if __name__ == "__main__":
    print("# 1. 多項式の乗法・除法、分数式")
    polynomial_operations()

    print("\n# 2. 二項定理")
    binomial_theorem()

    print("\n# 3. 等式と不等式の証明")
    equality_proof()

    print("\n# 4. 高次方程式")
    solve_high_order_equation()

    print("\n# 5. 直線と円")
    line_and_circle()

    print("\n# 6. 指数関数と対数関数")
    exponential_and_logarithmic()

    print("\n# 7. 三角関数の加法定理と2倍角の公式")
    trigonometric_properties()

    print("\n# 8. 微分と積分")
    differentiation_and_integration()

    print("\n# 9. 面積計算")
    area_under_curve()

import numpy as np
import matplotlib.pyplot as plt
from sympy import symbols, Eq, solve, diff, integrate, limit, pi, cos, sin, exp, log

# 1. 極限と数列
# 数列の極限
# 無限等比級数の和

def sequence_limits():
    n, r = symbols('n r')
    geometric_sequence = r**n
    limit_value = limit(geometric_sequence, n, np.inf)
    print(f"数列 {geometric_sequence} の極限: {limit_value}")

    # 無限等比級数の和
    a = symbols('a')
    sum_infinite = a / (1 - r)  # |r| < 1 の場合
    print(f"無限等比級数の和: {sum_infinite}")

# 2. 分数関数と無理関数

def fractional_and_irrational_functions():
    x = symbols('x')
    fractional_func = 1 / (x + 1)
    irrational_func = (x + 1)**0.5

    print(f"分数関数: {fractional_func}")
    print(f"無理関数: {irrational_func}")

    # プロット
    x_vals = np.linspace(-0.9, 5, 400)
    fractional_vals = 1 / (x_vals + 1)
    irrational_vals = np.sqrt(x_vals + 1)

    plt.figure(figsize=(10, 6))
    plt.plot(x_vals, fractional_vals, label='Fractional Function 1/(x+1)', color='blue')
    plt.plot(x_vals, irrational_vals, label='Irrational Function sqrt(x+1)', color='green')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
    plt.title("Fractional and Irrational Functions")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.legend()
    plt.grid()
    plt.show()

# 3. 合成関数と逆関数

def composite_and_inverse_functions():
    x = symbols('x')
    f = 2*x + 3
    g = (x - 3) / 2  # 逆関数

    composite = f.subs(x, g)
    print(f"合成関数 f(g(x)): {composite}")
    print(f"逆関数 g(x): {g}")

# 4. 微分と積分

def differentiation_and_integration():
    x = symbols('x')
    func = x**3 - 3*x**2 + 2*x

    # 微分
    derivative = diff(func, x)
    print(f"導関数: {derivative}")

    # 積分
    integral = integrate(func, x)
    print(f"不定積分: {integral}")

    # プロット
    x_vals = np.linspace(-1, 3, 400)
    func_vals = [func.subs(x, val) for val in x_vals]
    derivative_vals = [derivative.subs(x, val) for val in x_vals]

    plt.figure(figsize=(10, 6))
    plt.plot(x_vals, func_vals, label='Original Function', color='blue')
    plt.plot(x_vals, derivative_vals, label='Derivative', color='red', linestyle='--')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.title("Function and Derivative")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.legend()
    plt.grid()
    plt.show()

# 5. 積分の応用
# 面積、体積、曲線の長さ

def integration_applications():
    x = symbols('x')
    curve = x**2

    # 面積
    area = integrate(curve, (x, 0, 2))
    print(f"面積: {area}")

    # プロット
    x_vals = np.linspace(0, 2, 400)
    y_vals = x_vals**2
    plt.figure(figsize=(10, 6))
    plt.plot(x_vals, y_vals, label='$y = x^2$', color='blue')
    plt.fill_between(x_vals, y_vals, color='blue', alpha=0.2)
    plt.title("Area Under Curve")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.grid()
    plt.legend()
    plt.show()

# 実行
if __name__ == "__main__":
    print("# 1. 極限と数列")
    sequence_limits()

    print("\n# 2. 分数関数と無理関数")
    fractional_and_irrational_functions()

    print("\n# 3. 合成関数と逆関数")
    composite_and_inverse_functions()

    print("\n# 4. 微分と積分")
    differentiation_and_integration()

    print("\n# 5. 積分の応用")
    integration_applications()

import numpy as np
import matplotlib.pyplot as plt
from sympy import symbols, Eq, solve, diff, integrate, limit, pi, cos, sin, exp, log, factorial

# 1. 図形の性質
# 平面図形: 三角形の性質、円の性質、作図

def geometric_properties():
    x, y = symbols('x y')
    triangle_base = 5
    triangle_height = 3
    circle_radius = 4

    # 三角形の面積
    triangle_area = (triangle_base * triangle_height) / 2
    print(f"三角形の面積: {triangle_area}")

    # 円の面積
    circle_area = pi * circle_radius**2
    print(f"円の面積: {circle_area}")

    # 作図(例: 円と三角形のプロット)
    theta = np.linspace(0, 2 * np.pi, 500)
    circle_x = circle_radius * np.cos(theta)
    circle_y = circle_radius * np.sin(theta)

    plt.figure(figsize=(8, 8))
    plt.plot(circle_x, circle_y, label='Circle', color='blue')
    plt.fill([0, triangle_base, 0], [0, 0, triangle_height], color='orange', alpha=0.5, label='Triangle')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
    plt.title("Geometric Properties")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.legend()
    plt.grid()
    plt.axis('equal')
    plt.show()

# 2. 場合の数と確率
# 場合の数、順列・組合せ、確率

def combinations_and_probability():
    n, r = symbols('n r')

    # 順列
    permutation = factorial(n) / factorial(n - r)
    print(f"順列 P(n, r): {permutation}")

    # 組合せ
    combination = factorial(n) / (factorial(r) * factorial(n - r))
    print(f"組合せ C(n, r): {combination}")

    # 確率計算例
    total_outcomes = 6
    favorable_outcomes = 2
    probability = favorable_outcomes / total_outcomes
    print(f"確率: {probability}")

# 3. 数学と人間の活動
# ユークリッドの互除法、二進法、平面や空間における点の位置

def math_and_human_activity():
    # ユークリッドの互除法
    a, b = 56, 98
    while b:
        a, b = b, a % b
    gcd = a
    print(f"ユークリッドの互除法による最大公約数: {gcd}")

    # 二進法
    number = 19
    binary_representation = bin(number)[2:]
    print(f"数 {number} の二進法表記: {binary_representation}")

    # 点の位置
    x, y = symbols('x y')
    point = (3, 4)
    distance_from_origin = (point[0]**2 + point[1]**2)**0.5
    print(f"原点から点 {point} までの距離: {distance_from_origin}")

    # プロット
    plt.figure(figsize=(8, 8))
    plt.scatter([0, point[0]], [0, point[1]], color=['black', 'red'], label=['Origin', 'Point'])
    plt.plot([0, point[0]], [0, point[1]], color='red', linestyle='--', label='Distance')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
    plt.title("Point and Distance")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.legend()
    plt.grid()
    plt.axis('equal')
    plt.show()

# 実行
if __name__ == "__main__":
    print("# 1. 図形の性質")
    geometric_properties()

    print("\n# 2. 場合の数と確率")
    combinations_and_probability()

    print("\n# 3. 数学と人間の活動")
    math_and_human_activity()

import numpy as np
import matplotlib.pyplot as plt
from sympy import symbols, Eq, solve, diff, integrate, limit, pi, cos, sin, exp, log, factorial, S

# 1. 図形の性質
# 平面図形: 三角形の性質、円の性質、作図

def geometric_properties():
    x, y = symbols('x y')
    triangle_base = 5
    triangle_height = 3
    circle_radius = 4

    # 三角形の面積
    triangle_area = (triangle_base * triangle_height) / 2
    print(f"三角形の面積: {triangle_area}")

    # 円の面積
    circle_area = pi * circle_radius**2
    print(f"円の面積: {circle_area}")

    # 作図(例: 円と三角形のプロット)
    theta = np.linspace(0, 2 * np.pi, 500)
    circle_x = circle_radius * np.cos(theta)
    circle_y = circle_radius * np.sin(theta)

    plt.figure(figsize=(8, 8))
    plt.plot(circle_x, circle_y, label='Circle', color='blue')
    plt.fill([0, triangle_base, 0], [0, 0, triangle_height], color='orange', alpha=0.5, label='Triangle')
    plt.axhline(0, color='black', linewidth=0.8, linestyle='--')
    plt.axvline(0, color='black', linewidth=0.8, linestyle='--')
    plt.title("Geometric Properties")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.legend()
    plt.grid()
    plt.axis('equal')
    plt.show()

# 2. 場合の数と確率
# 場合の数、順列・組合せ、確率

def combinations_and_probability():
    n, r = symbols('n r')

    # 順列
    permutation = factorial(n) / factorial(n - r)
    print(f"順列 P(n, r): {permutation}")

    # 組合せ
    combination = factorial(n) / (factorial(r) * factorial(n - r))
    print(f"組合せ C(n, r): {combination}")

    # 確率計算例
    total_outcomes = 6
    favorable_outcomes = 2
    probability = favorable_outcomes / total_outcomes
    print(f"確率: {probability}")

# 3. 数列とその和
# 等差数列と等比数列、漸化式、数学的帰納法

def sequences_and_series():
    # 等差数列
    a1, d, n = symbols('a1 d n', real=True)
    arithmetic_nth = a1 + (n - 1) * d
    arithmetic_sum = n / 2 * (2 * a1 + (n - 1) * d)
    print(f"等差数列: 第n項 = {arithmetic_nth}, 和 = {arithmetic_sum}")

    # 等比数列
    a, r = symbols('a r', real=True)
    geometric_nth = a * r**(n - 1)
    geometric_sum = a * (1 - r**n) / (1 - r)
    print(f"等比数列: 第n項 = {geometric_nth}, 和 = {geometric_sum}")

    # 漸化式と数学的帰納法(例: フィボナッチ数列)
    fib_seq = [0, 1]
    for i in range(2, 10):
        fib_seq.append(fib_seq[-1] + fib_seq[-2])
    print(f"フィボナッチ数列: {fib_seq}")

# 4. 確率分布と統計的な推測
# 二項分布、正規分布、区間推定、仮説検定

def probability_and_statistics():
    x, n, p = symbols('x n p', real=True)

    # 二項分布
    binomial_prob = factorial(n) / (factorial(x) * factorial(n - x)) * p**x * (1 - p)**(n - x)
    print(f"二項分布の確率: {binomial_prob}")

    # 正規分布
    mu, sigma = symbols('mu sigma', real=True)
    normal_dist = (1 / (sigma * (2 * pi)**0.5)) * exp(-0.5 * ((x - mu) / sigma)**2)
    print(f"正規分布: {normal_dist}")

    # 区間推定と仮説検定(例示)
    sample_mean, sample_std, sample_size = 50, 10, 30
    margin_of_error = 1.96 * (sample_std / sample_size**0.5)
    confidence_interval = (sample_mean - margin_of_error, sample_mean + margin_of_error)
    print(f"95%信頼区間: {confidence_interval}")

# 実行
if __name__ == "__main__":
    print("# 1. 図形の性質")
    geometric_properties()

    print("\n# 2. 場合の数と確率")
    combinations_and_probability()

    print("\n# 3. 数列とその和")
    sequences_and_series()

    print("\n# 4. 確率分布と統計的な推測")
    probability_and_statistics()

import numpy as np
import matplotlib.pyplot as plt

# -------------------------------
# ベクトル演算
# -------------------------------
v1 = np.array([3, 4])
v2 = np.array([1, 2])
dot_product = np.dot(v1, v2)  # ベクトルの内積
print(f"Vector 1: {v1}, Vector 2: {v2}, Dot Product: {dot_product}")

# -------------------------------
# 空間座標とベクトル
# -------------------------------
v3 = np.array([1, 1, 1])
v4 = np.array([2, 3, 4])
cross_product = np.cross(v3, v4)  # 外積
print(f"Vector 3: {v3}, Vector 4: {v4}, Cross Product: {cross_product}")

# -------------------------------
# 平面上の曲線と複素数平面
# -------------------------------
t = np.linspace(0, 2 * np.pi, 500)
x = np.sin(2 * t)
y = np.cos(3 * t)

plt.figure(figsize=(8, 6))
plt.plot(x, y, label="Curve (Lissajous)", color='blue')
plt.title("Lissajous Curve")
plt.xlabel("x")
plt.ylabel("y")
plt.grid()
plt.legend()
plt.show()

# -------------------------------
# 複素数平面とド・モアブルの定理
# -------------------------------
theta = np.linspace(0, 2 * np.pi, 100)
complex_circle = np.exp(1j * theta)  # ド・モアブルの定理を使用
plt.figure(figsize=(6, 6))
plt.plot(complex_circle.real, complex_circle.imag, label="Unit Circle", color='green')
plt.axhline(0, color='black', linestyle='--', linewidth=0.5)
plt.axvline(0, color='black', linestyle='--', linewidth=0.5)
plt.title("Complex Plane: Unit Circle")
plt.xlabel("Real Part")
plt.ylabel("Imaginary Part")
plt.grid()
plt.legend()
plt.show()

# -------------------------------
# 行列の演算
# -------------------------------
A = np.array([[2, 1], [1, 3]])
B = np.array([[1, 0], [0, 1]])
matrix_product = np.dot(A, B)
print(f"Matrix A:\n{A}\nMatrix B:\n{B}\nProduct:\n{matrix_product}")

# -------------------------------
# 統計グラフ: ヒストグラム
# -------------------------------
data = np.random.normal(0, 1, 1000)  # 平均0, 標準偏差1の正規分布
plt.figure(figsize=(8, 6))
plt.hist(data, bins=30, color='purple', alpha=0.7, label="Histogram of Data")
plt.title("Histogram of Random Data")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.grid()
plt.legend()
plt.show()



import numpy as np
from scipy.integrate import quad

# 積分する関数の定義
def integrand(x):
    return np.sin(x)**2 + 2 * np.sin(2*x)**4

# 積分範囲
a = 0
b = np.pi

# 数値積分の実行
result, error = quad(integrand, a, b)

# 結果の表示
print("積分結果:", result)
print("誤差:", error)

import sympy as sp

# シンボリック変数の定義
x = sp.symbols('x')

# 積分する関数の定義
integrand = sp.sin(x)**2 + 2 * sp.sin(2*x)**4

# 積分を実行
result_symbolic = sp.integrate(integrand, (x, 0, sp.pi))

# 結果の表示
result_symbolic

# シンボリック変数の定義
x, y = sp.symbols('x y')

# 積分する関数の定義
integrand_2d = x**2 * y**2 + x * y**3

# 2重積分を実行 (-2 <= x <= 2, -2 <= y <= 2)
result_2d = sp.integrate(integrand_2d, (x, -2, 2), (y, -2, 2))

# 結果の表示
result_2d







0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?