Matlab计算矩阵和函数梯度
2015-10-15 17:04
351 查看
一、差分与微分
我自己的理解。二、求解
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中repmat函数的用法
- EKF-SLAM matlab仿真(1)
- 线性规划问题的matlab求解
- matlab 如何读取二进制、十六进制txt文档
- Matlab中各类函数用法
- MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)
- Matlab 字符串处理函数
- 解决办法:matlab Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap
- Caffe matlab之基于Alex network的特征提取
- matlab unique找出矩阵中不同元素
- 使用matlab进行多项式的拟合
- matlab中size()函数的用法
- matlab中find函数的使用说明
- MATLAB数字图像处理(二)直方图
- matlab将多条曲线绘制在一起
- matlab链接摄像头
- matlab下文件夹下所有文件改名
- matlab函数(连通区域)
- Matlab生成exe可执行文件
- Matlab矩阵转置注意事项