import math def solve_homogeneous_linear_ode(a, b, c): D = b**2 - 4*a*c if D > 0: r1 = (-b + math.sqrt(D)) / (2*a) r2 = (-b - math.sqrt(D)) / (2*a) return lambda x: C1*math.exp(r1*x) + C2*math.exp(r2*x) elif D == 0: r = -b / (2*a) return lambda x: (C1 + C2*x)*math.exp(r*x) else: alpha = -b / (2*a) beta = math.sqrt(-D) / (2*a) return lambda x: math.exp(alpha*x)*(C1*math.cos(beta*x) + C2*math.sin(beta*x))
时间: 2023-06-18 18:08:42 浏览: 113
solve-the-equation-root.zip_81AD_ROOT_b4a
这段代码是用来解决齐次线性常微分方程的函数。其中a, b, c是方程ax''+bx'+c=0的系数,返回一个lambda函数,输入x返回方程的解。当判别式D>0时,方程有两个互不相同的实根r1和r2,返回形如C1*exp(r1*x)+C2*exp(r2*x)的解;当D=0时,方程有一个实根r,返回形如(C1+C2*x)*exp(r*x)的解;当D<0时,方程有共轭复根alpha+beta*i和alpha-beta*i,返回形如exp(alpha*x)*(C1*cos(beta*x)+C2*sin(beta*x))的解。其中C1和C2是任意常数,通过初始条件来确定它们的值。
阅读全文