Taking derivative an array which is a numerical value with respect to another array
168 visualizzazioni (ultimi 30 giorni)
Roger Stafford il 3 Mag 2015
Modificato: Roger Stafford il 3 Mag 2015
Here is a second order approximation to du/dx which should be somewhat more accurate than a first order approximation, and if u is a quadratic function of x, then du/dx is exact (except of course for round-off errors.) Also note that there are as many points in the derivative array as in u and x. I assume in this code that u and x are row vectors of the same length. Intervals in x are not required to be equal.
xd = diff([x(3),x,x(n-2)]); % <-- Corrected
ud = diff([u(3),u,u(n-2)]); % <-- Corrected
dudx = (ud(1:end-1)./xd(1:end-1).*xd(2:end) ...
+ ud(2:end)./xd(2:end).*xd(1:end-1)) ...
Più risposte (1)
pfb il 2 Mag 2015
if f is the vector representing f(x) and x contains the corresponding abscissae
df = diff(f)./diff(x)
note that this has one less element than f and x. You can choose
xd = (x(1:end-1)+x(2:end))/2
(i.e. the halfway points) as the corresponding abscissae.