MATLAB高手请进,对参数导数了解的,符号求导,数字求导,都来看看

问题描述:

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列数组,后面这种情况导致的结果是跟别的数组就不能算了,毕竟需要数组列数相等
1个回答 分类:数学 2014-12-14

问题解答:

我来补答
diff的参数如果不是符号表达式的话,进行的是差分运算.
差分和微分有很多相似之处.
如:
>> x=1:10;
>> diff(x)
ans =
1 1 1 1 1 1 1 1 1
再问: 哪如果我知道了X跟Y的一个系列的对应值,如果我想求在某一个点X,Y处的导数,怎么求呢, 我有一个想法不知道对不对,难道对这一些系列的X,Y值拟合成方程以后然后再求在某一个点X,Y处的导数吗,或者还有别的好点的方法来求我这种情况某一个点的导数呢?非常感谢
再答: 拟合或插值。 也可以用差分代替微分。
 
 
展开全文阅读
剩余:2000