python进行常见的数学计算(方差,一元二次方程,求导,积分等等)

代码如下:

import numpy as np
import math
import cmath
import scipy


# 平均数
def average(lst):
    sum_lst = 0
    for n in lst:
        sum_lst = sum_lst+n
    return sum_lst/len(lst)

#方差
def variance(lst):
    average_lst = average(lst)
    sum_variance = 0
    for n in lst:
        sum_variance = sum_variance + (n - average_lst)**2
    return  sum_variance/n


# 二元一次方程求解
def solve_two_unknown(a1,b1,c1,a2,b2,c2):
    # a1*x + b1*y = c1
    # a2*x + b2*y = c2
    determinant = a1 * b2 - a2 * b1  # 计算行列式
    if determinant == 0:
        return "方程组无解或有无穷多解"

    x = (c1 * b2 - c2 * b1) / determinant
    y = (a1 * c2 - a2 * c1) / determinant
    return x, y


#一元二次方程求解
def solve_quadratic(a,b,c):
    #"一元二次方程求解器 (ax² + bx + c = 0)"

    # 计算判别式
    discriminant = b ** 2 - 4 * a * c

    # 计算两种情况
    if discriminant > 0:
        x1 = (-b + discriminant ** 0.5) / (2 * a)
        x2 = (-b - discriminant ** 0.5) / (2 * a)
        return x1,x2


    elif discriminant == 0:
        x = -b / (2 * a)
        return x,x

    else:
        x1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
        x2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
        return x1,x2


#多项式求解
# 多项式系数:[1, 0, -2, -5] 对应 x³ - 2x - 5 = 0
def solve_polynomial(lst):
    return np.roots(lst)

#求积分,f(x) 在积分区间[a, b],上的积分
def solve_integration(f,a,b):
    result, error = scipy.integrate.quad(f, a, b)

    return result


#x平方
def f1(x):
    return x ** 2

# sinx
def f2(x):# 弧度制
    return math.sin(x)


#求导数,f(x),在点a处的导数。
def numerical_derivative(f, a, h=1e-5):
    return (f(a + h) - f(a - h)) / (2 * h)  # 中心差分法








补充说明:

方差是一种度量数据集中元素离群值的统计量,可表示为:

python进行常见的数学计算(方差,一元二次方程,求导,积分等等)_第1张图片

np.roots

是 NumPy 库中用于求解多项式方程根的函数,其核心原理是通过将多项式问题转化为矩阵特征值问题,利用数值计算方法高效求解。

scipy.integrate.quad

是 SciPy 库 integrate 模块的核心函数,用于计算一维定积分的数值近似值。将积分区间划分为多个子区间,在每个子区间上使用高阶多项式近似被积函数。

你可能感兴趣的:(python)