mil*_*lad 3 matlab numerical derivative
我有一个问题,矢量的数值导数是x:Nx1,相对于x的相同大小的另一个矢量t(时间).我执行以下操作(x被选为正弦函数作为示例):
t=t0:ts:tf;
x=sin(t);
xd=diff(x)/ts;
Run Code Online (Sandbox Code Playgroud)
但答案xd是(N-1)x1,我发现它不计算与x的第一个元素相对应的导数.
有没有其他方法来计算这个衍生物?
你正在寻找gradient
我假设的数字.
t0 = 0;
ts = pi/10;
tf = 2*pi;
t = t0:ts:tf;
x = sin(t);
dx = gradient(x)/ts
Run Code Online (Sandbox Code Playgroud)
此函数的目的是不同的(向量字段),但它提供的diff
不是:输入和输出相等长度的向量.
gradient
计算数据点之间的中心差异.对于每行中具有N个值的数组,矩阵或向量,第i个值由定义
使用端点值与行内的下一个相邻值之间的单侧差来计算端点处的梯度,其中i = 1且i = N. 如果指定了两个或更多输出,则梯度还会计算沿其他维度的中心差异.与diff函数不同,gradient返回一个与输入元素数相同的数组.
归档时间: |
|
查看次数: |
10352 次 |
最近记录: |