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 !
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).
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
Men vad är det ovanför då? raderna 1-7?
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"
Behöver du möjligen spara filen med num_deriv i, och har inte gjort det?
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
Du kan ha ändrat och glömt spara, men det kanske inte funkar så i din programmeringsmiljö.
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
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.
Den pekar ut källkodens rad 11, så den verkar hitta filen.
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).
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 !