一、差分与微分

  我自己的理解。

二、求解

  2.1 矩阵

  这就是matlab的计算结果.太小的话放大些:
c =
4 5 9
7 2 1
5 2 6
>> [x,y]=gradient(c)
x =
1.0000 2.5000 4.0000
-5.0000 -3.0000 -1.0000
-3.0000 0.5000 4.0000
y =
3.0000 -3.0000 -8.0000
0.5000 -1.5000 -1.5000
-2.0000 0 5.0000
  先看x,x就是矩阵的横向梯度,怎么求解的呢,第一列就是的数值就是第二列减去第一列的值除以1   比如-5=(2-7)/1.第2列就是第二列减去第一列的值加上第三列减去第二列的值再除以2,比如:-3=((2-7)+(1-2))/2.最后一列比较特殊,因为它之后没有其余列了,于是最后一列=最后一列减去倒数第二列除以1.比如-1=(1-2)/1.y的求解跟1就是一个性质了  。

  2.2 二元函数

  在上MATLAB课的时候,有学生问怎么用gradient函数求f=2x2+3y3的梯度啊,不懂得怎么写格式,试了很多次都不行.解答如下:
  在MATALB中,求梯度只能是求数值梯度,所以必须将函数f离散化,用差分代替微分,精度取决于差分步长,因为现在计算机速度足够快,所以差分可以取得足够小,也不影响计算速度和计算精度.方法如下:
 X=-6:0.6:6;   %计算区间是[-6 6],步长0.6
Y=X;
[x,y]=meshgrid(X,Y) %生成计算网格
f=2.*x.^2+3.*y.^3 %计算网格结点上的函数值
[Dx,Dy]=gradient(f) %用数值方法求函数梯度
quiver(X,Y,Dx,Dy) %用矢量绘图函数绘出梯度矢量大小分布
hold on
contour(X,Y,f) %与梯度值对应,绘出原函数的等值线图

  

Matlab计算矩阵和函数梯度的更多相关文章

  1. Matlab计算矩阵间距离

    夜深人静时分,宿舍就我自己,只有蚊子陪伴着我,我慢慢码下这段文字............ 感觉知识结构不完善:上学期看论文,发现类间离散度矩阵和类内离散度矩阵,然后百度,找不到,现在学模式识别,见了, ...

  2. matlab计算矩阵每列非0元素个数

    在统计分析中,有时候需要计算矩阵每列非0元素的个数,可以用以下方法: 先用find找到每列不为0的元素index,然后用count计数. 假设有矩阵A[M,N], 结果存在countZeros cou ...

  3. paper 120:计算距离矩阵的函数的pdist和pdist2函数

    matlab中自带的计算距离矩阵的函数有两个pdist和pdist2.前者计算一个向量自身的距离矩阵,后者计算两个向量之间的距离矩阵.基本调用形式如下: D = pdist(X) D = pdist2 ...

  4. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  5. Matlab 计算大数的阶乘

    http://hi.baidu.com/dreamflyman/item/11e920165596280fd0d66d9f >> syms k;>> kfac=sym('k!' ...

  6. 有关CUBLAS中的矩阵乘法函数

    关于cuBLAS库中矩阵乘法相关的函数及其输入输出进行详细讨论. ▶ 涨姿势: ● cuBLAS中能用于运算矩阵乘法的函数有4个,分别是 cublasSgemm(单精度实数).cublasDgemm( ...

  7. Matlab调用C语言函数

    Matlab调用C语言函数 如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数:double add(double x, double y) { return x + y ;}现在我想要在 ...

  8. Matlab随笔之画图函数总结

    原文:Matlab随笔之画图函数总结 MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATL ...

  9. matlab中的eval函数使用

    matlab中的eval函数使用 在matlab的命令行窗口中输入help eval命令回车就可以看到eval函数的官方解释,大概的意思就是执行matlab中的表达式,计算expression表示的代 ...

随机推荐

  1. Cassandra 备份 - 1 - 节点镜像恢复

    之前比较关注如何使用Cassandra,但是真正想大规模使用前提还是需要搞清楚备份机制,确保数据安全. 本文主要内容来自文档 "Cassandra2.2"的翻译.最后部分为真实操作 ...

  2. 【Windows】如何判断当前鼠标是否按下左键或右键

    在delphi中,很多窗体和控件的鼠标事件里面已经将鼠标按键状态封装好传给响应事件的函数,所以这种情况直接使用就可以,但在某些时候,我们没有这些事件可以处理时,想判断鼠标按键是否按下的状态,就需要借助 ...

  3. markdown文档编写

    (这里面的符号都是英文的:回车是需要:空格 空格 回车) # markdown练习---1.引入图片(1和4只差!) ![周杰伦](http://p3.so.qhimg.com/bdr/_240_/t ...

  4. ADO.NET 结构 集中数据库联接结构

    MSDN 原文出处 https://msdn.microsoft.com/zh-cn/library/27y4ybxw.aspx .NET Framework 4.6 and 4.5 其他版本 以前, ...

  5. STL之迭代器

    容器支持的迭代器类型  STL Container  Type of Iterators Supported   vector  random access iterators 元素严格有序(类似数组 ...

  6. 《大话设计模式》ruby版代码:策略模式

    需求: 商场收银软件,根据客户购买物品的单价和数量,计算费用,会有促销活动,打八折,满三百减一百之类的. 一,使用工厂模式. # -*- encoding: utf-8 -*- #现金收费抽象类 cl ...

  7. WPF优化体验<一>

    最近将一个开发和维护了五年的一个Winform项目进行重构,考虑到最近很流行将用户体验挂在嘴上,于是采用了WPF技术,希望能在外观和体验上有一个全新的效果. 以前使用Winform的时候内存控制得不错 ...

  8. Linux 配置jdk环境变量

    1.首先去官网下载所需版本的jdk,必须是.linux下的安装版本. 2.解压到以文件下 3.vim /etc/profile or ~/.bashrc 添加如下环境配置 JAVA_HOME=/usr ...

  9. oracle 归档/非归档

    1.查看oralce是归档模式还是非归档模式 SQL> select name,log_mode from v$database; NAME LOG_MODE------------------ ...

  10. EF 随机排序

    /// <summary> /// 数据上下文扩展 /// </summary> public partial class dbDataContext : IUnitOfWor ...