问题描述:
MATLAB高手请进,对参数导数了解的,符号求导,数字求导,都来看看
例:现在我知道t=0:0.1:10,y=2*t,x=3*t;那么dy/dx=diff(y)/diff(x)结果如图所示是
x,y是101个数dy/dx是1个数dy./dx是100个数,
现在我的问题是:我想求dy./dx但是结果却少了一列,直接导致跟别的矩阵运算不了;
或者我想错了
难道MATLAB的求导运算最好用符号运算,然后再手动把计算的公式带到数值计算里面去吗
我再说明白点吧,首先我们来进行符号运算还是上面的例子,如y=f(t),x=g(t);现在dy/dx=(dy/dt)/(dx/dt)=g(t),,,当然可能后面连t都没有是个常数,这里加入后面都导数以后后面还剩一个参数t,然后t是n列数组,那么dy/dx肯定就是n列数组了
然后我们再来进行数值计算,继续上面的例子,如果t是一个n列数组;y=f(t),x=g(t);现在dy/dx=diff(y)。/diff(x)=,,,,,这个得到的结果是n-1列数组,后面这种情况导致的结果是跟别的数组就不能算了,毕竟需要数组列数相等
例:现在我知道t=0:0.1:10,y=2*t,x=3*t;那么dy/dx=diff(y)/diff(x)结果如图所示是
x,y是101个数dy/dx是1个数dy./dx是100个数,
现在我的问题是:我想求dy./dx但是结果却少了一列,直接导致跟别的矩阵运算不了;
或者我想错了
难道MATLAB的求导运算最好用符号运算,然后再手动把计算的公式带到数值计算里面去吗
我再说明白点吧,首先我们来进行符号运算还是上面的例子,如y=f(t),x=g(t);现在dy/dx=(dy/dt)/(dx/dt)=g(t),,,当然可能后面连t都没有是个常数,这里加入后面都导数以后后面还剩一个参数t,然后t是n列数组,那么dy/dx肯定就是n列数组了
然后我们再来进行数值计算,继续上面的例子,如果t是一个n列数组;y=f(t),x=g(t);现在dy/dx=diff(y)。/diff(x)=,,,,,这个得到的结果是n-1列数组,后面这种情况导致的结果是跟别的数组就不能算了,毕竟需要数组列数相等
问题解答:
我来补答展开全文阅读