数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 5175|回复: 2

怎样让MATLAB实现在函数某一点的微分?

[复制链接]
发表于 2007-7-15 21:27:29 | 显示全部楼层 |阅读模式
在函数  f(t1)的微分,这样求得Z1=[],

那点错了
y=feval(f,t1);
    z1=diff(y);


f=-(3-2*x.^2)*x;
>> diff(f)

ans =

     []
发表于 2007-7-15 22:16:55 | 显示全部楼层
你这里用了点乘,表达示中的X应该先赋值;
x=0:0.1:1;
diff(-(3-2*x.^2).*x)
 楼主| 发表于 2007-7-16 10:17:04 | 显示全部楼层

matlab没有直接提供 数值求导

在MATLAB中,没有直接提供求数值导数的函数,只有计算向前差分的函数diff,其调用格式为:
DX=diff(X):计算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1,2,…,n-1。
DX=diff(X,n):计算X的n阶向前差分。例如,diff(X,2)=diff(diff(X))。
DX=diff(A,n,dim):计算矩阵A的n阶差分,dim=1时(缺省状态),按列计算差分;dim=2,按行计算差分。

谢谢深蓝了,问题解决了。
在做数值求导时  对diff的数值处理一下就可对数值求导了


diff的用法
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2020-1-21 12:47 , Processed in 0.056652 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表