import numpy as npdef 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
改其他的函数测试
12345678910111213141516171819202122import 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
import math#2x**2+3*x+0 = 0def quadratic_equation(a, b, c): t = math.sqrt(pow(b, 2) - 4 * a * c) if(pow(b, 2) - 4 * a * c) > 0: return (-b + t) / (2 * a), (-b - t) / (2 * a) elif (pow(b, 2) - 4 * a * c) == 0: return (-b + t) / (2 * a) else: return Noneprint quadratic_equation(2, 3, 0)
本回答被网友采纳
你这种 你最好起一个英文的文件名最好还短一点你看你第一个就可以执行,第二个中文文件名就不行报错也可以看出 你看看括号全角半角问题
本回答由提问者推荐
要用python命令执行,输入python F:\......py
你要输入:python F:\解二次函数实根(2).py
在运行 python ***.py
追问
奥,真的诶,然后就发现有有缩进错误了,靠。不过为什么我写的别的程序就不用在前面写上python,顺便求解哈
追答
不知道你以前怎么使用的,不过我是用python自带的IDLE来编写的,结果会输出在python自带的shell里,你也可以在windows命令行里先输入python,这样就进入python的环境了,在那里面你可以用python的语法而不用再加命令。
二次方程,先计算判别式,判别式小于0 的,说明方程有复数根,那么就用Complex类型来表示就行了,Complex类型是python的内置类型。1+2*i 就写成x=complex(1,2)
更多追问追答
追问
怎么像这个样子输出root1=2+3j谢谢啦
追答
delta = b^2-4acif delta<0: x1 = (-b+Complex(0,1)*sqrt((-1)*delta))/(2a) x2 = (-b-Complex(0,1)*sqrt((-1)*delta))/(2a)else: #这里写原来的求根公式
追问
你确定,你用的是python????
追答
我给你的思路,你看明白了之后,你自己去编写程序。要我帮你把完整的程序写好,我又不是你的苦力。
import scipy.optimizeimport sympyprint(scipy.optimize.fsolve(lambda x: x**2 + 2*x + 1, 0))print(sympy.solve('x**2 + 2*x + 1'))spicy.optimize.fsolve求数值解需要给定初值必要需要选定求解器(解二元已所谓)sympy.solve求解析解更细致玩其实元二程种求根公式玩意……直接套求根公式行……
追问
谢谢您的回答,但是我详细写了定义函数,而且我是一个卑微的初学者,想按照基本方法做
本回答由网友推荐