15 svar
94 visningar
Laura2002 är nöjd med hjälpen
Laura2002 440
Postad: 17 nov 2022 14:50

funktion med e som bas

Hejsan, jag ska skriva in e-0.1xcosxi Python och använder mig av Numpy och Visual Studio Code. Det jag skriver in är "f= lambda x: np.exp(-1x/10)*emp.cos(x)" men får bara ut "invalid decimal literal". Vet någon hur jag ska skriva så det blir rätt?

Laguna Online 28536
Postad: 17 nov 2022 14:54

Ja, -1x betyder ingenting i programmeringsspråk. Skriv -x i stället.

Laura2002 440
Postad: 17 nov 2022 16:50

Det blir fortfarande fel :/

Laguna Online 28536
Postad: 17 nov 2022 17:06

Precis samma fel? Hur skriver du nu?

Laura2002 440
Postad: 17 nov 2022 17:07

Yes, blir samma fel. Har skrivit g(x)= lambda x: np.exp(-0.x)*emp.cos(x)


Tillägg: 17 nov 2022 17:08

Får också en pil på punkten (alltså där felet är) men vet inte hur man annars skulle göra

Laguna Online 28536
Postad: 17 nov 2022 17:09

-0.x är inte heller något vettigt. Vad menar du med det?

Du kanske menar -0.1*x.

-x/10 borde också ha fungerat.

Laura2002 440
Postad: 17 nov 2022 17:12
Laguna skrev:

-0.x är inte heller något vettigt. Vad menar du med det?

Du kanske menar -0.1*x.

-x/10 borde också ha fungerat.

Ja precis, var så jag menade. Har testat att skriva på båda sätt men får fortfarande fel

CurtJ 1148
Postad: 17 nov 2022 17:44

Din rad (f = lambda x: np.exp(-x / 10.) * cos(x)) borde fungera. Det är korrekt python såvitt jag vet. Kan det vara så att det är 10 som spökar. Prova att skriva 10.0 i stället och om det är samma problem så lägg ut hela koden här så har vi lättare att förstå vad som händer.

Laura2002 440
Postad: 17 nov 2022 18:04

Min kod ser ut såhär:

import numpy as np
f= lambda x: np.exp(-x/10.)*np.cos(x)
print (f)

Har testat att skriva 0.1*x, 10, 10., 10.0 osv

Fermatrix 7841 – Fd. Medlem
Postad: 17 nov 2022 18:11 Redigerad: 17 nov 2022 18:15

Det är inget fel på den koden, men jag tror problemet ligger i att du inte förstår vad det är du har gjort.

Du kan inte printa f. Du kommer endast få ut att det är en funktion av typen Lambda med en adress i hexadecimalt.

def f(x):
    return np.exp(-x / 10.) * np.cos(x)


print(f(1))

Gör som ovan istället, det är ingen idé att rota sig ner i lambda. 

Laguna Online 28536
Postad: 17 nov 2022 19:27

Berätta vilka nya fel du får när du ändrar något. Om du inte gör det så förutsätter vi att det är samma fel som sist. Vi är inte tankeläsare.

Laura2002 440
Postad: 18 nov 2022 08:35
Dracaena skrev:

Det är inget fel på den koden, men jag tror problemet ligger i att du inte förstår vad det är du har gjort.

Du kan inte printa f. Du kommer endast få ut att det är en funktion av typen Lambda med en adress i hexadecimalt.

def f(x):
    return np.exp(-x / 10.) * np.cos(x)


print(f(1))

Gör som ovan istället, det är ingen idé att rota sig ner i lambda. 

Måste tyvärr använda lambda på just denna (står med i uppgiften)

Laura2002 440
Postad: 18 nov 2022 08:35
Laguna skrev:

Berätta vilka nya fel du får när du ändrar något. Om du inte gör det så förutsätter vi att det är samma fel som sist. Vi är inte tankeläsare.

Det är fortfarande samma fel :(

Fermatrix 7841 – Fd. Medlem
Postad: 18 nov 2022 08:47

Då har du något annat som spökar. Om jag kopierar dig så funkar det utmärkt.

f = lambda x: np.exp(-x / 10) * np.cos(x)
print(f(1))
Laguna Online 28536
Postad: 18 nov 2022 09:39
Laura2002 skrev:
Laguna skrev:

Berätta vilka nya fel du får när du ändrar något. Om du inte gör det så förutsätter vi att det är samma fel som sist. Vi är inte tankeläsare.

Det är fortfarande samma fel :(

Hur ser koden ut nu, och vad blir felet?

Laura2002 440
Postad: 19 nov 2022 11:36

Fick hjälp med den på en övning och hittade felet, tack för hjälpen :)

Svara Avbryt
Close