错误:“差阶N必须是正整数标量”
150次观看(过去30天)
显示旧的注释
我写了一个剧本:
(x, y) = meshgrid (0:1:500 100:1:100);
k =(2 *π)/ 30;
Q = 25 * k;
l =(2 *π)/ 30;
f = 2 * (cos (x (k *) + Q)。* cos (l * y));
xlable = (0 < x < 500公里的);
ylable = (“-100公里< y < 100公里”);
contourf (x, y, f, [1, 0, 1]);
colorbar
我想计算df/dx并用等值线绘制,我添加了:
G = diff(f,x,1)
但是这个错误会在运行整个脚本后发生:
错误:“差阶N必须是正整数标量”
我该怎么办?
0评论
答案(2)
沃尔特·罗伯森
2021年9月18日
有两个不同的名为diff()的函数。
符号差分是微积分微分。它需要一个符号表达式(sym)或符号函数(symfun)作为它的第一个参数,第二个参数是微分变量,可选的第三个参数是微分次数。Diff (f,x,1)对于该符号函数来说并不少见(尽管Diff (f,x)可能更常见)。
数值差异是连续的数值差异。它需要一个数值表达式作为第一个参数,第二个可选参数是取差的次数,第三个可选参数是要操作的维度。Diff([3 8 4])为[8- 3,4 -8]->[5,-4]。它可以
潜在的
有语法diff(f,x,1),但如果是这样,那么x必须是[]或一个正整数,给出取差的次数,1将是运算的维度。
我们不建议使用diff()来估计导数:大多数情况下使用gradient()会更好
[gx, gy] = gradient(f, x, y);