Compute the partial derivative numerically

Hi, I want to compute the first and second partial derivative with respect to x, y for this function
x0=0
y0=0
x=[-1:0.1:1];
y=[-2:0.1:2];
v=x+exp(-((x-x0).^2+(y-y0).^2))

 Akzeptierte Antwort

Star Strider
Star Strider am 21 Dez. 2017

0 Stimmen

See if the gradient (link) function will do what you want:
Example
x0=0;
y0=0;
x=[-1:0.1:1];
y=[-2:0.1:2];
[X,Y] = meshgrid(x, y);
v = @(x,y) x+exp(-((x-x0).^2+(y-y0).^2));
[dX,dY] = gradient(v(X,Y));
figure(1)
surf(X, Y, v(X,Y), 'FaceAlpha',0.5, 'EdgeColor',[0.3 0.3 0.7])
hold on
surf(X, Y, dX, 'EdgeColor','g')
surf(X, Y, dY, 'EdgeColor','r')
hold off
grid on
legend('v(x,y)', 'dX', 'dY')
xlabel('\bfX')
ylabel('\bfY')
view(40, 20)
figure(2)
contour(X, Y, v(X,Y))
hold on
quiver(X, Y, dX, dY)
hold off
legend('v(x,y)', 'Gradient')

4 Kommentare

F.O
F.O am 21 Dez. 2017
Bearbeitet: F.O am 21 Dez. 2017
and i f i want the second derivative then i just write ?????
[dXX,dYY]=gradient(gradient (v(x,y))
The easiest way is to use the related del2 (link) function. Remember to multiply it by 4 to get the second derivative:
d2Z = 4*del2(v(X,Y));
referencing my earlier code for the function call. See the del2 documentation for details, since it works a bit differently than gradient.
F.O
F.O am 21 Dez. 2017
Thanks for the answer
Star Strider
Star Strider am 21 Dez. 2017
My pleasure.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

F.O
am 21 Dez. 2017

Bearbeitet:

F.O
am 21 Dez. 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by