2 svar
243 visningar
jonnefcb behöver inte mer hjälp
jonnefcb 121
Postad: 2 feb 2023 21:41

Numpy funktioner och vektorer

Hej, jag jobbar med en laboration i beräkningsprogrammering och stöter på lite konstiga problem. 

 

Detta görs i min kod på rad 8. Har jag gjort något fel? OBS: Min IDE gör automatiskt om funktionerna från lambda-form till def-form. 

Görs på rad 12 i min kod. Exakt lika dant som de generöst nog visade i ledtråden.

Se rad 27 i min kod. OBS: x är alltså en vektor/lista med 100 element (mellan 0 och 10). Tanken är att jag på rad 27, precis som i ledtråden, ska skapa en ny vektor y0 som innehåller derivatan av g för varje värde i vektorn x. 

Jag får istället ett error som säger att jag inte får addera en vektor med en float. Detta verkar visserligen rimligt i mina ögon, men uppgiftsbeskrivningen säger ju bokstavligen att jag ska göra såhär. 

Vad gör jag för fel?

Jag kan inte heller anropa g(x) då x är en vektor. Jag får då error om att jag har försökt multiplicera -0.1 med x. Om jag däremot ändrar så att g(x) = (e^x)cosx så fungerar det. Det går alltså bara att anropa en funktion med en vektor som argument sålänge parametern inte adderas eller multipliceras med något. Hur ska man göra med 99% av funktioner där så är fallet?

Hondel 1377
Postad: 2 feb 2023 22:29

Du bör nog konvertera din lista x till en numpy-array innan du gör något (x = np.array(x) ). Tex x+1 funkar bra om x är en numpy-array, men om x är en lista verkar den tolka + som konkatenering av listor, och om då h inte är en lista utan en float kommer det blir galet om du skriver x+h.

jonnefcb 121
Postad: 2 feb 2023 22:48
Hondel skrev:

Du bör nog konvertera din lista x till en numpy-array innan du gör något (x = np.array(x) ). 

Men herregud, detta löste ju allt! Vilken miss från min sida. Stort tack!! 

Svara
Close