2017-10-30 2 views
-1

lesen würde Ich mag ein Polynom aus einer txt-Datei lesen und zu bewerten, die im folgende Format angegeben,Polynome auswerten, indem sie es aus einer Datei

3x^3-4x^1 + 5

  • so kann die obige Gleichung sollte durch das Programm evaulated werden wie folgt

Koeffizienten: [3,0, -4,5]

Bisher

konnte ich der Lage, die Zeichenfolge zu analysieren und erstellt zwei verschiedene Listen, die Koeffizienten speichern und die Grade wie folgt

Koeffizienten: [3, -4,5] -> Sie sind die coeffs von x^3, x^1 und^x 0

Degrees: [3,1]

jedoch konnte ich nicht beurteilen (dh P (1) = 3 (1^3) -4 (1^1) +5 = 4) das Polynom mit diesen extrahierten Werten. Ich möchte numpy verwenden, aber die Formate stimmen nicht überein.

Kann mir jemand helfen, wie bekomme ich das benötigte Format für die Nutzung von numpy?

Danke.

+0

Willkommen beim Stapelüberlauf. Leider ist deine Frage zu weit gefasst. Stack oveflow ist kein Code-Schreibdienst, er hilft Ihnen bei der Lösung spezifischer Probleme. Lesen Sie [fragen] und verfeinern Sie Ihre Frage. – Johan

Antwort

0

Angenommen, Sie den konstanten Term setzen kann (Koeffizient von x^0) in Ihrer deg Liste, dann können Sie dies tun:

coeffs = [3,-4,5] 
degs = [3,1,0] 
_coeffs = [0]*(max(degs)+1) 
for i,deg in enumerate(degs): 
    _coeffs[deg] = coeffs[i] 

p = np.poly1d(_coeffs[::-1]) 

Dann:

p(1) 
4 

Das heißt, man muss nur müssen eine Liste von Koeffizienten erstellen, in denen der Koeffizient am Gradindex erscheint.

0

Dies ist ohne numpy: -

function eval_poly(coef,degree,value_of_x): 
    num = 0 
    while num < len(coef)-1: 
     answer = coef[num]*value_of_x^degree[num] 
     num += 1 
    answer += coef[-1] 
    return answer 
1

Statt die Datei als zwei getrennte Listen der Parsen, sie zu einem einzigen verschmelzen. Dann polyval von numpy verwenden:

import numpy as np 

p = [3,0,-4,5] 
np.polyval(p,1) 

Gibt Ihnen 4 als Ergebnis.

Verwandte Themen