系统应该返回一个正数,但是python总是返回Y作为负数,而它不应该返回Y

2024-06-01 02:41:19 发布

您现在位置:Python中文网/ 问答频道 /正文

def cramer_input(): #Chiede l'input dei coefficienti della colonna x, y e i termini noti.

    #Variabili

    global cx1
    global cx2
    global cy1
    global cy2
    global tn1
    global tn2
    print('Inserisci il coefficiente di X della prima riga')
    cx1 = float(input("INPUT > "))
    print("Inserisci il coefficiente di X nella seconda riga")
    cx2 = float(input("INPUT > "))
    print("Inserisci il coefficiente di Y nella prima riga")
    cy1 = float(input("INPUT > "))
    print("Inserisci il coefficiente di Y nella seconda riga")
    cy2 = float(input("INPUT > "))
    print("Inserisci il termine noto della prima riga")
    tn1 = float(input("INPUT > "))
    print("Inserisci il termine noto della seconda riga")
    tn2 = float(input("INPUT > "))

    dxy = ((cx1) * (cy2)) - ((cx2) * (cy1))
    dxp = ((tn1) * (cy2)) - ((tn2) * (cy1))
    dyp = ((tn1) * (cx2)) - ((tn2) * (cx1))

    dx = dxp / dxy
    dy = dyp / dxy

    print("X = " + str(dx))
    print("Y = " + str(dy))

    qr = input("Chiudere (q) o rieseguire (R) ?")
    while qr == "r" or "R":
        cramer_input()
    else:
        quit()

def menu():
    print("Titolo: Risoluzione di sistemi lineari con il metodo di Cramer")
    print("Autore: Francesco Parisio")
    print("Digita I per iniziare, Q per chiudere.")
    iq = input("INPUT I/Q > ")
    if iq == "I" or "i":
        cramer_input()
    elif iq == "Q" or "q":
        quit()

menu()

我试着用这个算法来解一个线性系统。当我按ENTER键时,它工作,但是Y总是负值,我不希望这样,在(1;4)的解决方案中,4总是-4

我用了这个例子:

3x -y = -1

{

x + y = 5

这应该返回1;4,但返回1-四,

请帮帮我,谢谢


Tags: inputfloatglobalilprintdicy1cx1