利用Matlab绘制梯度图、散度图、旋度图
来源:互联网 发布:unity3d 汽车模型 编辑:程序博客网 时间:2024/06/05 04:52
1. 分别用mesh()和surf()绘制出函数xx.*exp(-xx.^2 - yy.^2)的例题曲面图。
例1(mesh):
x=linspace(-2, 2, 25);y=linspace(-2, 2, 25);[xx, yy]=meshgrid(x, y);zz=xx.*exp(-xx.^2 - yy.^2);mesh(xx, yy, zz);colorbar;
例2(surf):
<pre name="code" class="plain">x=linspace(-2, 2, 25);y=linspace(-2, 2, 25);[xx, yy]=meshgrid(x, y);zz=xx.*exp(-xx.^2 - yy.^2);h=contour(zz, 12);clabel(h);
;
2. 分别用mesh()和surf()绘制出函数sqrt(xx.^2 + yy.^2)的立体曲面图。
例3:
x=linspace(-2, 2, 25);y=linspace(-2, 2, 25);[xx, yy]=meshgrid(x, y);zz=sqrt(xx.^2+ yy.^2);mesh(xx, yy, zz);colorbar;
例4:
x=linspace(-2, 2, 25);y=linspace(-2, 2, 25);[xx, yy]=meshgrid(x, y);zz=sqrt(xx.^2+ yy.^2);surf(xx, yy, zz);colorbar;
3. 分别画出以上连个函数的等高线,并标注等高线值。
例5(conour):
x=linspace(-2, 2, 25);y=linspace(-2, 2, 25);[xx, yy]=meshgrid(x, y);zz=xx.*exp(-xx.^2 - yy.^2);h=contour(zz, 12);clabel(h);
例6(conour):
x=linspace(-2, 2, 25);y=linspace(-2, 2, 25);[xx, yy]=meshgrid(x, y);zz=sqrt(xx.^2 + yy.^2);h=contour(zz, 12);clabel(h);
4. 求以上两个函数的梯度,并在高等线图中以矢量箭头的形式显示各点的梯度。
例7(gradient):
x=linspace(-2, 2, 25);y=linspace(-2, 2, 25);[xx, yy]=meshgrid(x, y);zz=xx.*exp(-xx.^2 - yy.^2);h=contour(zz, 12);clabel(h);[dx, dy]=gradient(zz,.2,2);hold on;quiver(dx, dy);
例7(gradient):
x=linspace(-2, 2, 25);y=linspace(-2, 2, 25);[xx, yy]=meshgrid(x, y);zz=sqrt(xx.^2 + yy.^2);h=contour(zz, 12);clabel(h);[dx, dy]=gradient(zz,.2,2);hold on;quiver(dx, dy);
5. 求矢量场的散度。
例9(divergence):
[x, y, z] = meshgrid(-3:1:3);u=3.*x.^2 + 2.*y.^2 + z.^2;v=x.^2 + 3.*y.^2 + 2.*z.^2;w=2.*x.^2 + 3.*y.^2 + z.^2;div=divergence(x, y,z, u, v, w);figurefor i=1:7%figuremesh(div(:,:,i));hold on;end
6. 求矢量场的旋度。
例10(curl):
[x, y, z] = meshgrid(-3:1:3);u=3.*x.^2 + 2.*y.^2 + z.^2;v=x.^2 + 3.*y.^2 + 2.*z.^2;w=2.*x.^2 + 3.*y.^2 + z.^2;[curlx, curly, curlz]=curl(x, y,z, u, v, w);figurefor i=1:7mesh(curlx(:,:,i));hold on;end
例11:
[x, y, z] = meshgrid(-3:1:3);u=3.*x.^2 + 2.*y.^2 + z.^2;v=x.^2 + 3.*y.^2 + 2.*z.^2;w=2.*x.^2 + 3.*y.^2 + z.^2;[curlx, curly, curlz]=curl(x, y,z, u, v, w);figurefor i=1:7mesh(curlx(:,:,i));hold on;endfigurefor i=1:7mesh(curly(:,:,i));hold on;end
例12:
[x, y, z] = meshgrid(-3:1:3);u=3.*x.^2 + 2.*y.^2 + z.^2;v=x.^2 + 3.*y.^2 + 2.*z.^2;w=2.*x.^2 + 3.*y.^2 + z.^2;[curlx, curly, curlz]=curl(x, y,z, u, v, w);figurefor i=1:7mesh(curlx(:,:,i));hold on;endfigurefor i=1:7mesh(curly(:,:,i));hold on;endfigurefor i=1:7mesh(curlz(:,:,i));hold on;end
7. 总结:
函数描述linspace(a, b, n)在a,b之间取n个点meshgrid()生成网格采样点mesh()画出立体网状图contour()画等高线clabel()标注等高线值gradient()求梯度hold on保持图像quiver()画矢量图箭头divergence()求散度figure显示图形for i=1:7...end自动分成7个7*7矩阵的值%figure7个图层单独显示curl()求旋度注:
1) type + 函数名 查看实现源码(type meshgrid )
1 0
- 利用Matlab绘制梯度图、散度图、旋度图
- MATLAB绘制等高线和梯度场
- 利用MATLAB 绘制矩阵色块图
- 利用MATLAB绘制Bezier曲线
- 利用matlab实现图的绘制、保存、关闭
- matlab梯度
- 利用MATLAB绘制GTOPO30的DEM地形图
- 利用MATLAB绘制三维彩色柱状图
- 利用matlab在图形中绘制箭头
- Matlab 利用参数方程绘制空心球体
- Matlab 利用参数方程绘制空心球体
- Matlab绘制二维图
- Matlab绘制二维图
- Matlab绘制条形图
- Matlab绘制条形图
- matlab绘制海洋图
- MATLAB绘制条形图
- MATLAB绘制梯形图
- [分块 暴力 树] BZOJ 4381 [POI2015]Odwiedziny
- [LeetCode] 129. Sum Root to Leaf Numbers
- [鬼畜 树链剖分 线段树] BZOJ 2814 tree
- c# 笔记整理(2016年9月4日)
- 利用Android Studio创建AIDL并使用AIDL
- 利用Matlab绘制梯度图、散度图、旋度图
- 多线程基础
- 支付业务的数据库表的设计
- CSS3 渐变效果(20160827-0027)
- Notes from PERL beginner-初学1
- MyEclipse 使用 User Library 自定义自己的库
- 学习日记20160904
- 二分查找法
- RxJava Android 开发全家桶