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个数,现在我的问题是:我
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 14:50:18
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个数,现在我的问题是:我
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列数组,后面这种情况导致的结果是跟别的数组就不能算了,毕竟需要数组列数相等
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个数,现在我的问题是:我
diff的参数如果不是符号表达式的话,进行的是差分运算.
差分和微分有很多相似之处.
如:
>> x=1:10;
>> diff(x)
ans =
1 1 1 1 1 1 1 1 1
t的起始数改成0.1呢?你试试改到0.1,又是差距一列数的,,求导以后的总是比本来的列数少一那个,我说得不一定对啊,因为我们上学的时候用的是MATHMATIC,所以MATLAB不太熟,我估计你用的这个数值计算方法用的是差分法吧,如果是差分法,肯定是会少一列的恩,应该是差分法,总是上一个值与下一个值的差, 虽然最后我的主要问题解决了,没用用这个导数,而是采用部分符号计算求的,然后再手动带入,再总体...
全部展开
t的起始数改成0.1呢?你试试
收起