[LÖST]MATLAB Numerisk derivata

Trädvy Permalänk
Medlem
Plats
Malmfälten
Registrerad
Mar 2008

[LÖST]MATLAB Numerisk derivata

Som vanligt när det kommer till programmering är jag helt retarderad...

Jag försöker beräkna en numerisk derivata med denna funktion(num_deriv.m (som är given)):

%Computes an approximate value of f'(a) %dfdx = approximate value of the derivative %f = function handle to function f(x) %a = value at which the derivative is computed %h = length of the small value over which the derivative is % approximated function dfdx=num_deriv(f,a,h) dfdx=(f(a+h)-f(a))/h;

Dold text

Jag tror mitt fel ligger här, när jag skapar en anonym funktion:

f = @ (x) x^2;

Sedan försöker jag använda min funktion med hjälp av detta kommando:

dfdx = num_deriv(@f,2,0.01)

Men får felmeddelandet:

Error: "f" was previously used as a variable, conflicting with its use here as the name of a function or command. See "How MATLAB Recognizes Command Syntax" in the MATLAB documentation for details.

Kan någon berätta för mig vad det är jag gör för fel?
För om jag skriver direkt i Command Window:

>> a=2; h=0.01; >> (f(a+h)-f(a))/h

Så får jag korrekt svar.

Lurkar - läser mycket skriver lite. Vill du få min uppmärksamhet är det citat eller pm som gäller.
Jag anser att AIO-kylare har en plats i världen men det är INTE i fullstora ATX-system.

Trädvy Permalänk
Medlem
Plats
Malmfälten
Registrerad
Mar 2008
Skrivet av Litenskit:

Som vanligt när det kommer till programmering är jag helt retarderad...

Jag försöker beräkna en numerisk derivata med denna funktion(num_deriv.m (som är given)):

%Computes an approximate value of f'(a) %dfdx = approximate value of the derivative %f = function handle to function f(x) %a = value at which the derivative is computed %h = length of the small value over which the derivative is % approximated function dfdx=num_deriv(f,a,h) dfdx=(f(a+h)-f(a))/h;

Dold text

Jag tror mitt fel ligger här, när jag skapar en anonym funktion:

f = @ (x) x^2;

Sedan försöker jag använda min funktion med hjälp av detta kommando:

dfdx = num_deriv(@f,2,0.01)

Men får felmeddelandet:

Error: "f" was previously used as a variable, conflicting with its use here as the name of a function or command. See "How MATLAB Recognizes Command Syntax" in the MATLAB documentation for details.

Kan någon berätta för mig vad det är jag gör för fel?
För om jag skriver direkt i Command Window:

>> a=2; h=0.01; >> (f(a+h)-f(a))/h

Så får jag korrekt svar.

Det verkar ha varit fel i exemplet, anropet skulle inte innehålla @
dvs det ska vara:

dfdx = num_deriv(f,2,0.01)

Lurkar - läser mycket skriver lite. Vill du få min uppmärksamhet är det citat eller pm som gäller.
Jag anser att AIO-kylare har en plats i världen men det är INTE i fullstora ATX-system.