码迷,mamicode.com
首页 > 其他好文 > 详细

Matlab基础学习------------------函数微分

时间:2014-10-09 18:59:47      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:matlab   函数微分   diff   gradient   

<span style="font-size:18px;">% 函数微分
% 函数微分比函数积困难,积分描述函数的整体性质,微分描述函数在某一点的斜率
% 由于微分非常困难,应尽量避免数值微分,特别是对实验获得的数据进行微分,这种情况下
% 最好用最小二乘曲线拟合这种数据,然后对多项式进行微分

% 1、使用diff()求解数值微分
% diff(x)  
% x为向量,所得值为[x(2)-x(1),x(3)-x(2),x(4)-x(3)...]
% x是矩阵,得到矩阵的差分
% x是n维数组,得到言第一个相关维的差分值
% diff(x,n) 
% 求矩阵的n阶差分值
% 如果n>size(x,dim),先计算可能的连续差分值,直到size(x,dim)=1,然后沿任意的n+1维进行差分计算
% diff(x,n,dim)
% 用来计算n阶差分,如果n>size(x,dim),函数返回空的数组
% 实例 
A=[1,3,4,5,6,88] %================================================================
diff(A)          %================================================================
%结果
% A =
%      1     3     4     5     6    88
% ans =
%      2     1     1     1    82
B=[1,2,3;4,6,6;4,4,4]%================================================================
diff(B)%================================================================
%结果
% B =
%      1     2     3
%      4     6     6
%      4     4     4
% ans =
%      3     4     3
%      0    -2    -2

% 2、使用gradient求解近似梯度
% 实例
x=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0]%================================================================
[fx,fy]=gradient(x)%================================================================
%结果
% x =
%      6     9     3     4     0
%      5     4     1     2     5
%      6     7     7     8     0
%      7     8     9    10     0
% fx =
%     3.0000   -1.5000   -2.5000   -1.5000   -4.0000
%    -1.0000   -2.0000   -1.0000    2.0000    3.0000
%     1.0000    0.5000    0.5000   -3.5000   -8.0000
%     1.0000    1.0000    1.0000   -4.5000  -10.0000
% fy =
%    -1.0000   -5.0000   -2.0000   -2.0000    5.0000
%          0   -1.0000    2.0000    2.0000         0
%     1.0000    2.0000    4.0000    4.0000   -2.5000
%     1.0000    1.0000    2.0000    2.0000         0
% 计算规则说明
% 计算规则: [Fx,Fy]=gradient(F),其中Fx为其水平方向上的梯度,Fy为其垂直方向上的梯度
% Fx的第一列元素为原矩阵第二列与第一列元素之差
% Fx的第二列元素为原矩阵第三列与第一列元素之差除以2
% 以此类推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。
% 最后一列则为最后两列之差。
% 同理,可以得到Fy。
</span>

Matlab基础学习------------------函数微分

标签:matlab   函数微分   diff   gradient   

原文地址:http://blog.csdn.net/z1137730824/article/details/39931775

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!