用python求二元一次方程的根,显示math domain error,错在哪?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python求二元一次方程的根,显示math domain error,错在哪?相关的知识,希望对你有一定的参考价值。

import math
a = int(raw_input('a:'))
b = int(raw_input('b:'))
c = int(raw_input('c:'))
i = math.sqrt(b*b-4*a*c)
e = -b + i
f = -b - i
answer1 = e/(2*a)
answer2 = f/(2*a)
print"x1=",answer1
print"x2=",answer2

楼上说的非常正确,给大家个参考程序吧,我也正遇到过,使用Python的错误判断输出结果就可以了

import math
def calcRoot(a, b, c):
    # a,b,c = int(a), int(b), int(c)
    try:
        value = b**2 - 4*a*c  # b*b - 4*a*c
        sq = math.sqrt(value)
        x1 = (-b + sq) / (2 * a)
        x2 = (-b - sq) / (2 * a)
        if x1 == x2:
            # return x1
            print('x1=x2= %.2f' % x1)
        else:
            # return '%.2f'%x1, round(x2,2)
            print('x1= %.2f\\nx2= %.2f' % (x1, x2))
    except:
        print('该方程无根')

calcRoot(13,-100,31)
# print(re)

运行以上程序,就能看到下面效果了;输出加了格式化,否则输出的是一长串浮点数

参考技术A 测试下b*b-4*a*c是否大于等于0
a不等于0

(31-33)判断两个实型数据是否相等,求一元二次方程的根,逻辑型数据

(31)判断两个实型数据是否相等

1.abs求一个整型数据的绝对值,fabs,求一个浮点型数据的绝对值

(32)求一元二次方程的根

#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,d;
printf("请依次输入二元一次方程的洗漱:\n");
scanf("%lf%lf%lf",&a,&b,&c);
if (a==0)
{
printf("请输入正确的洗漱");
return 0;
}
d=b*b-4*a*c;
if (d<0)
printf("无解");
else if(fabs(d)<1e-6)
printf("%lf",-b/(2*a));
else
printf("%lf,%lf",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
return 0;
}

(33)逻辑型数据

1.bool型变量有false==0和true==1

2.bool型只占一个字符

3. 布尔型数据也是整形数据的一种

以上是关于用python求二元一次方程的根,显示math domain error,错在哪?的主要内容,如果未能解决你的问题,请参考以下文章

二分求根法

python怎么求解一元二次方程的根?

C语言编程 解一元二次方程

C语言编程:求1元2次方程的根

用switch语句编写求一元二次方程的解的方程

二元一次方程组