2024-01-01 00:07:45 | 我爱编程网
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import numpy as np
def solve_quad(a,b,c):
if a == 0:
print('您输入的不是二次方程!')
else:
delta = b*b-4*a*c
x = -b/(2*a)
if delta == 0:
print('方程有惟一解,X=%f'%(x))
return x
elif delta > 0:
x1 = x-np.sqrt(delta)/(2*a)
x2 = x+np.sqrt(delta)/(2*a)
print('方程有两个实根:X1=%f,X2=%f'%(x1,x2))
return x1,x2
else:
x1 = (-b+complex(0,1)*np.sqrt((-1)*delta))/(2*a)
x2 = (-b-complex(0,1)*np.sqrt((-1)*delta))/(2*a)
print('方程有两个虚根,如下所示:')
print(x1,x2)
return x1,x2
Python解一元二次方程,本质上还是用于数学公式/定理计算。
编程最好的方法就是实践,当你能处理绝大多数例子之后,你会发现很多难懂的概念也就自然的解决了。python编程最好的方法就是实践,当你能处理绝大多数例子之后,你会发现很多难懂的概念也就自然的解决了。
print(sympy.solve(x**2+2*x+1))spicy.optimize.fsolve求数值解,需要给定初值,必要时需要选定求解器(不过解个二元一次而已无所谓了)。sympy.solve求解析解。当然还有更细致的玩法。
二次方程,先计算判别式,判别式小于0的,说明方程有复数根,那么就用Complex类型来表示就行了,Complex类型是python的内置类型。
用
牛顿迭代法
+
多项式除法
化简。
1)针对方程组 f(x),首先用牛顿迭代法得到方程的第一个根(a),那么 f(x) = (x-a)g(x)
2)用多项式除法,计算 g(x) = f(x)/(x-a)我爱编程网
重复第一步,得到 g(x) 的根,然后再重复第二步,进一步对方程降幂。
最终就可以化简整个方程。
2023-12-26 12:43:58
2023-12-23 12:08:32
2023-09-13 13:02:53
2023-12-28 16:34:59
2023-12-27 17:16:46
2023-12-27 07:23:25