12 svar
128 visningar
Fritzzz behöver inte mer hjälp
Fritzzz 207
Postad: 20 nov 2022 08:53

får inte min funktion för derivatan att fungera

hej behöver skriva en funktion som kan beräkna derivatan av olika funktioner för att sedan kunna använda denna fil i framtida script. Dock förstår jag inte vad som är fel när jag testar med ett exempel, får detta error. Vad kan det bero på ?

f =är funktionshantag till f(x)

a =värdet där derivatan blir beräknad 

h= det lilla värdet där derivatan blir approximerad 

såhär ser det ut i kommando fönstret när jag testar med funktionen x^2

tack på förhand !

Matsmats 571 – Livehjälpare
Postad: 20 nov 2022 09:33

Det ser ut som du har med koden som kör funktionen och själva funktionen i samma fil. Kanske det fungerar i sena versioner av MATLAB men det är ingen bra idé tycker jag. Lägg num_deriv i en egen fil, den SKALL då heta num_deriv.m eftersom MATLAB använder filnamnet för att hitta funktionsnamnet. Alltså egen fil med raderna 9 - 11. Sedan kallar du på den från ditt script (där du tar bort raderna 9-11).

Fritzzz 207
Postad: 20 nov 2022 11:44
Matsmats skrev:

Det ser ut som du har med koden som kör funktionen och själva funktionen i samma fil. Kanske det fungerar i sena versioner av MATLAB men det är ingen bra idé tycker jag. Lägg num_deriv i en egen fil, den SKALL då heta num_deriv.m eftersom MATLAB använder filnamnet för att hitta funktionsnamnet. Alltså egen fil med raderna 9 - 11. Sedan kallar du på den från ditt script (där du tar bort raderna 9-11).

Hej tack för svar!! 

 

Vet ej om det inte framgår från bilden men funktionen är i en separat m fil, jag kallar på den från kommandofönstret

Matsmats 571 – Livehjälpare
Postad: 20 nov 2022 15:50

Men vad är det ovanför då? raderna 1-7?

Fritzzz 207
Postad: 20 nov 2022 15:53
Matsmats skrev:

Men vad är det ovanför då? raderna 1-7?

Det är bara kommentarer med % framför, det står samma sak som jag skrev över i frågan. Det är inget som "ingår/fungerar i koden"

Laguna Online 30497
Postad: 20 nov 2022 18:02

Behöver du möjligen spara filen med num_deriv i, och har inte gjort det?

Fritzzz 207
Postad: 20 nov 2022 18:10
Laguna skrev:

Behöver du möjligen spara filen med num_deriv i, och har inte gjort det?

Hur menar du? Den är sparad som num_deriv.m

Laguna Online 30497
Postad: 20 nov 2022 18:23

Du kan ha ändrat och glömt spara, men det kanske inte funkar så i din programmeringsmiljö.

Fritzzz 207
Postad: 20 nov 2022 18:33 Redigerad: 20 nov 2022 18:33
Laguna skrev:

Du kan ha ändrat och glömt spara, men det kanske inte funkar så i din programmeringsmiljö.

Okej då förstår jag, nej den är sparad. Dubbelkollade:) förstår inte vad det inte är som funkar 

Matsmats 571 – Livehjälpare
Postad: 20 nov 2022 21:09

Funktionsfilen kanske inte finns i MATLAB:s sökväg. Om du gör 'which num_deriv' så skall MATLAB tala om var funktionsfilen ligger. Får du 'num_deriv not found' så är filen inte på sökvägen.

Du kan också testa att trycka på 'Run' i editorn när du är i funktionen.
Om filen inte är på sökvägen så ser det ut såhär:

Du kan välja 'Change Folder' eller 'Add to Path' beroende på hur du vill ha det.

Laguna Online 30497
Postad: 20 nov 2022 21:37

Den pekar ut källkodens rad 11, så den verkar hitta filen.

Matsmats 571 – Livehjälpare
Postad: 20 nov 2022 22:03

Ah, precis. Men anropet är nog fel, det skall inte vara @f där. f är ju ett funktionshandtag, @f skulle vara ett handtag till ett funktionshandtag så anropet borde vara dfdx=num_deriv(f,2,0.01).

Fritzzz 207
Postad: 20 nov 2022 22:23
Matsmats skrev:

Ah, precis. Men anropet är nog fel, det skall inte vara @f där. f är ju ett funktionshandtag, @f skulle vara ett handtag till ett funktionshandtag så anropet borde vara dfdx=num_deriv(f,2,0.01).

Nu funkade det, tusen tack för hjälpen !

Svara
Close