Trouble with my function
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I want to run this code:
syms x
syms y(x)
y(x) = 5*(x^2);
values = 4;
h = 1;
derivative(5,1)
function yd = derivative(values, h)
syms y(x)
yd = (y(values + h) - y(values - h)) / (2*h);
end
But instead of getting the real value ( in this case 40 ), I got :
ans =
y(6)/2 - y(4)/2
How can I solve this please.
0 Kommentare
Antworten (1)
Star Strider
am 9 Jan. 2021
You need to tell your ‘derivative’ function what ‘y’ is.
Changing ‘derivative’ to an anonymous function (for my convenience) and otherwise leaving it unchanged (except to add ‘y’ as an argument):
syms x y(x)
derivative = @(values, h, y) (y(values + h) - y(values - h)) / (2*h);
y(x) = 5*(x^2);
values = 4;
h = 1;
Result = derivative(5,1,y)
produces:
Result =
50
Note —
Check = diff(y)
CheckTest = Check(values)
produces:
CheckTest =
40
I will let you troubleshoot that discrepancy.
6 Kommentare
Star Strider
am 9 Jan. 2021
I am not getting any error messages when I run the code I posted.
You need to include ‘y’ as an argument in your call to it. Currently, you are not doing that. See my original Answer in order to unbderstand how to do that correctly.
Other than that, I have no idea what the problem is with your implementation of it.
Siehe auch
Kategorien
Mehr zu Number Theory finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!