Как написать х ^ 2 в моем коде Python? Может ли кто-нибудь дать мне предложение о моем коде - PullRequest
0 голосов
/ 14 октября 2019

Калькулятор квадратичных уравнений и код, который я использовал, не сработали. В коде есть некоторые ошибки.

Я уже пробовал с основными числами, такими как 1/2/3. Нет уравнения. Тем не менее код не работает. То, что на самом деле работает - это помещать переменную только и все. После того, как я нажал клавишу ввода, чтобы увидеть ответ, он сказал, что в моем коде есть некоторые ошибки.

print ("Quadratic Equation Calculator")

import math

print ("Enter the first variable : ")
first = float(input(''))
print ("Enter the second variable : ")
second = float(input(''))
print ("Enter the third variable : ")
third = float(input(''))

Answer1 = ((-1 * second) - math.sqrt((math.pow(second, 2) - 4.0*first*third))) / (2*first)
Answer2 = ((-1 * second) + math.sqrt((math.pow(second, 2) - 4.0*first*third))) / (2*first)

print (Answer1)
print (Answer2)

Я ожидаю правильного ответа на вопросы, и этот калькулятор уравнений можно использовать для реальных уравнений и использованияпеременные. х квадрат и 3х и что-то в этом роде.

Ответы [ 4 ]

1 голос
/ 15 октября 2019

В питоне x ^ 2, может быть x ** 2, x * x или pow (x, 2). Другие дали вам хорошие предложения, и я хотел бы добавить несколько. Квадратичное уравнение: ax ^ 2 + bx + c = 0 (отрегулируйте так, чтобы уравнение равнялось нулю!) Имеет полиномиальные члены ax ^ 2, bx, c;чьи коэффициенты являются а, б. И c был постоянным членом. тогда квадратичные формулы: (-b + sqrt (b ^ 2 - 4 * a * c)) / 2a;Решает для x.

Все вышеперечисленное правильно отображается в вашем коде. Однако у вас возникнут проблемы, если решения останутся в наборе комплексных чисел {C}.

Это можно легко решить, измеряя"дискриминант".

Дискриминант имеет вид b ^ 2 - 4ac и

  • , если дискриминант = 0, тогда существует только одно решение
  • , если дискриминант>0, то есть два реальных решения
  • , если дискриминант <0, то есть два комплексных решения </li>

Учитывая приведенные выше условия, код должен выглядеть так:

import math


print ("Quadratic Equation Calculator")

a = float(input("Enter the coefficient of term `x ^ 2` (degree 2), [a]: "))
b = float(input("Enter the coefficient of term `x` (degree 1), [b]: "))
c = float(input("Enter the constant term (degree 0), [c]: "))

discriminant = pow(b, 2) - 4.0 * a * c

if discriminant == 0:
    root1 = root2 = (-1 * b) / (2 * a)
elif discriminant < 0:
    root1 = ((-1 * b) - math.sqrt(-discriminant) * 1j) / (2 * a)
    root2 = ((-1 * b) + math.sqrt(-discriminant) * 1j) / (2 * a)
else:
    root1 = ((-1 * b) - math.sqrt(discriminant)) / (2 * a)
    root2 = ((-1 * b) + math.sqrt(discriminant)) / (2 * a)

print (root1)
print (root2)

Подобные ответы SO: https://stackoverflow.com/a/49837323/8247412

Ниже я изменил код в пользу программирования на pythonic, так как numpy может найти корни полиномиальных (квадратичных и высших порядков) уравнений с мастерством. numpy.roots

import numpy as np
print ("Quadratic Equation Calculator")

a = float(input("Enter the coefficient of term `x ^ 2` (degree 2), [a]: "))
b = float(input("Enter the coefficient of term `x` (degree 1), [b]: "))
c = float(input("Enter the constant term (degree 0), [c]: "))

coeffs = [a, b, c]  # or d, e and so on..
roots = np.roots(coeffs)
print (roots)
0 голосов
/ 08 ноября 2019

Спасибо за поддержку. Но я уже ответил на мой вопрос. Я думаю, что не дал никаких подробностей о проблеме, которая у меня была. Но я знаю, какой код я использую. Я сделал этот код, который использовал не только задачи с квадратичными уравнениями, но и поможет вам найти минимальную точку для уравнений с квадратичными уравнениями. Код:

    import math

print("Quadratics Equation Calculator")
repeat = "yes"
while repeat.lower() == "yes":

    V = float(input("Enter how many Variables do you have in the question: "))
    print(V)
    if V == 3:
        a = float(input("Enter the first variable: "))
        print(a)
        b = float(input("Enter the second variable: "))
        print(b)
        c = float(input("Enter the third variable: "))
        print(c)
        root_1 = ((-1 * b) + math.sqrt((b ** 2) - (4 * a * c))) / (2 * a)
        root_2 = ((-1 * b) - math.sqrt((b ** 2) - (4 * a * c))) / (2 * a)
        print(f"The first result is {root_1} to {round(root_1)}")
        print(f"The second result is {root_2} to {round(root_2)}")
        graph = str(input("Want minimum point: "))
        if graph == "yes":
            x = ((b / 2) * -1)
            y = c - b ** 2/4*a
            print(f"The minimum point is ({x}, {y})")
        elif graph == "no":
            repeat = str(input("Do you wish to continue?: "))
            if repeat == "no":
                break
        else:
            repeat = str(input("Do you wish to continue?: "))
            if repeat == "no":
                break

    elif V == 2:
        a = float(input("Enter the first variable: "))
        print(a)
        b = float(input("Enter the second variable: "))
        print(b)
        root_1 = ((-1 * b) + math.sqrt((b ** 2) - (4 * a * 0))) / (2 * a)
        root_2 = ((-1 * b) - math.sqrt((b ** 2) - (4 * a * 0))) / (2 * a)
        print(f"The first result is {root_1} to {round(root_1)}")
        print(f"The second result is {root_2} to {round(root_2)}")

    else: 
        print("INVALID ERRORS, CHECK AGAIN YOUR VARIABLES")
        print("Type yes or no.")

    repeat = str(input("Do you wish to continue?: "))
    if repeat == "no":
        break

Спасибо за все ответы, которые вы, ребята, дали мне, а также за формулу этого.

0 голосов
/ 14 октября 2019

Попробуй это. Я рекомендую использовать более короткие имена для переменных. Вы можете заменить «import numpy as np» на «import cmath» и заменить «np.lib.scimath» на «cmath», если вы не установили numpy. QES расшифровывается как решатель квадратичных уравнений.

#Import package
import numpy as np

#Define a new function called qes
def qes(a1,b1,c1):

    ans1=((-1*b1)+np.lib.scimath.sqrt((b1**2)-(4*a1*c1)))/(2*a1)
    ans2=((-1*b1)-np.lib.scimath.sqrt((b1**2)-(4*a1*c1)))/(2*a1)

    return ans1,ans2

#With the defined function perform a calculation and print the answer
ans1,ans2=qes(1,2,1)
print('Answer 1 is: ',ans1,' Answer 2 is: ',ans2)
0 голосов
/ 14 октября 2019

Похоже, вы пытаетесь найти корни квадратичной функции y = a*x^2 + b*x + c. В зависимости от значений a, b и c. ( Обратите внимание, что вы должны использовать эти имена переменных вместо first, second и third, потому что они являются обычно используемыми математическими именами. )

В зависимости от значений a, b и c, корни могут быть комплексными числами. Я предлагаю вам начать с некоторых значений, которые вы знаете, даст реальные, а не сложные решения.

В Python, когда вы попытаетесь получить квадратный корень из отрицательного числа, вы получитеошибка. Если вы хотите вычислять сложные корни, вам нужно научиться использовать комплексные числа в Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...