Matlab计算矩阵和函数梯度

一、差分与微分

  我自己的理解。

二、求解

  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)    %与梯度值对应,绘出原函数的等值线图

  

时间: 2024-09-21 10:18:01

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

Matlab计算矩阵间距离

夜深人静时分,宿舍就我自己,只有蚊子陪伴着我,我慢慢码下这段文字............ 感觉知识结构不完善:上学期看论文,发现类间离散度矩阵和类内离散度矩阵,然后百度,找不到,现在学模式识别,见了,发现是数学公司,不过老师不讲........ 一.问题来源 今天有个意想不到的收货,下午讲课的时候遇到一个人主动加我,来自南京信息工程大学的某X(处于隐私保护,未经李某X同意,笔者不敢公开其信息),下面是他的话:很久没去博客园了....现在只有matlab版本的一些hash算法;我现在主要就是在研究

【原创】开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

               本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对源代码进行分析,使得大家可以尽可能的使用Math.NET在.NET平台下轻易的开发数学计算相

《MATLAB/Simulink系统仿真超级学习手册》——2.3 MATLAB下矩阵的运算

2.3 MATLAB下矩阵的运算 MATLAB/Simulink系统仿真超级学习手册 矩阵运算是MATLAB最重要的运算,因为MATLAB的运算大部分都建立在矩阵运算的基础之上.MATLAB有三种矩阵运算类型:矩阵的代数运算.矩阵的关系运算和矩阵的逻辑运算.其中,矩阵的代数运算应用最广泛. 根据不同的应用目的,矩阵的代数运算又包含两种重要的运算形式:按矩阵整体进行运算,按矩阵单个元素进行运算的元素群运算. 2.3.1 矩阵的代数运算 1.矩阵的算术运算 矩阵算术运算的书写格式与普通算术运算相同,

开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

原文:[原创]开源Math.NET基础数学类库使用(17)C#计算矩阵条件数                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组

利用window API实现matlab屏幕抓取函数

摘要:结合如何用window API实现matlab屏幕抓取函数,介绍了在matlab中如何利用matlab与C/C++的接口,调用操作系统API,扩展matlab功能. 引言 MATLAB 产品家族是美国 MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境.由于其完整的专业体系和先进的设计 开发思路,使得 MATLAB 在多种领域都有广阔的应用空间. 尽管MATLAB在科学研究以及工业技术开发方面有着极为广泛的应用,但是它也不是万能的.在某些场合下,MATL

用matlab计算桁架内力影响线程序

问题描述 用matlab计算桁架内力影响线程序 用C实现较为困难,想试着用matlab解决问题,有没有谁有相关经验 解决方案 我用过matlab ,我是参加数学建模时用过,我感觉C实现困难,matlab比C更困难,matlab主要是关于数据可视化.数据分析以及数值计算的高级技术计算语言,你到网上看看视频和语句,我感觉会很难实现. 解决方案二: http://wenku.baidu.com/link?url=RjaWUpJvq0OBQ94RDt31koGiRf6geG1YleH-J09ZWCQXp

开源Math.NET基础数学类库使用(15)C#计算矩阵行列式

原文:[原创]开源Math.NET基础数学类库使用(15)C#计算矩阵行列式                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html  上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程

【原创】开源Math.NET基础数学类库使用(15)C#计算矩阵行列式

               本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对源代码进行分析,使得大家可以尽可能的使用Math.NET在.NET平台下轻易的开发数学计算相

【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩

               本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对源代码进行分析,使得大家可以尽可能的使用Math.NET在.NET平台下轻易的开发数学计算相