博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数 matlab_matlab矢量函数的可视化
阅读量:6359 次
发布时间:2019-06-23

本文共 1854 字,大约阅读时间需要 6 分钟。

matlab矢量图

流线图streamline

streamline(x,y,u,v,startx,starty)其中startx,starty分别为流线的坐标

[x,y]=meshgrid(0:0.1:1,0:0.1:1); u=sin(x);v=-y; figure quiver(x,y,u,v,1); startx=0.1:0.1:1; starty=ones(size(startx)); streamline(x,y,u,v,startx,starty)
55d2ac42a2db76a3783bb4698886160a.png

矢量函数的可视化

%% 二维 [x,y]=meshgrid(0:.2:2); u=cos(x).*y;    v=sin(x).*y; quiver(x,y,u,v)
689356402457c97fc7830b785dffe850.png
%% 三维 [x,y]=meshgrid(0:.2:2); u=cos(x).*y;    v=sin(x).*y; quiver(x,y,u,v)
6d54611a24f2dca9bb14b03218cf7b10.png

梯度gradient

对于直角坐标系

对于柱坐标系

对于球坐标系

matlab中用法,[Fx,Fy,Fz...Fn]=gradient(F,hx,hy,hz...hn)

下面给个例子:

[x,y]=meshgrid(-2:.1:2); z=x.*exp(-x.^2-y.^2); [px,py]=gradient(z,.2,.2); figure contour(x,y,z); hold on quiver(x,y,px,py); hold off
9a6f108aa257bd58ddd441dfa9f1deb9.png
[x,y]=meshgrid(-2:.1:2); z=x.*exp(-x.^2-y.^2); [px,py]=gradient(z,.2,.2); figure contour(x,y,z); hold on quiver(x,y,px,py); hold off
6acc503b9f85f312d7043ef03d579be6.png

散度divergence

散度是单位体积的通量(即通量体密度) 其定义为:

直角坐标:

柱坐标:

球坐标:

高斯公式:

散度的体积分等于通量 matlab中内置divergence

  • div=divergence(x,y,z,u,v,w)
syms x y z real F=[cos(x+2*y),sin(x-2*y)]; g=divergence(F,[x y]); divF=matlabFunction(g); x=-2.5:0.1:2.5; [X,Y]=meshgrid(x); Fx=cos(X+2*Y); Fy=sin(X-2*Y); div_num=divF(X,Y); pcolor(X,Y,div_num); shading interp; colorbar hold on quiver(X,Y,Fx,Fy,'k','linewidth',1);
b2b742f763f707337c8bfea707086cc0.png

旋度curl

矢量场旋度用来描述围绕中心旋转的程度,定义为:

对于直角坐标系:

对于柱坐标:

对于球坐标:

matlab中用curl函数

syms x y z real F=[cos(x+2*y),sin(x-2*y)]; G=curl([F,0],[x y z]) curlF=matlabFunction(G(3)); x=-2.5:0.1:2.5; [X,Y]=meshgrid(x); Fx=cos(X+2*Y); Fy=sin(X-2*Y); rot=curlF(X,Y); pcolor(X,Y,rot); shading interp; colorbar hold on quiver(X,Y,Fx,Fy,'k','linewidth',1);
1752f04dbb9dcfeb446ba23b14f18566.png

拉普拉斯算子

定义:

矢量函数拉普拉斯变换:

  • 通过上式可以求出解析解:
syms x y z V=[x^2*y,y^2*z,z^2*x]; vars=[x y z]; gradient(divergence(V,vars))-curl(curl(V,vars),vars)
  • 数值差分法del2(U,hx,hy,hz...hn)

del2求出的是拉普拉斯运算的1/4

[x,y]=meshgrid(-5:0.25:5); U=1/3.*(x.^4+y.^4); h=0.25;%指定步长 L=4*del2(U,h); figure surf(x,y,L); grid on title('$\Delta U(x,y)=\frac{x^4+y^4}{3}$','Interpreter','latex'); xlabel('x') ylabel('y') zlabel('z')
a1aa4610d637c17e33118beba60b2669.png

转载地址:http://nzfma.baihongyu.com/

你可能感兴趣的文章
node.js原型继承
查看>>
揭露让Linux与Windows隔阂消失的奥秘(1)
查看>>
我的友情链接
查看>>
Mysql备份和恢复策略
查看>>
linux17-邮件服务器
查看>>
AS开发JNI步骤
查看>>
Android NDK开发:JNI基础篇
查看>>
使用Maven命令快速建立项目结构
查看>>
二分查找,php
查看>>
python面试题-django相关
查看>>
Python——eventlet.greenthread
查看>>
记大众点评之面试经历
查看>>
第三章:基本概念
查看>>
Jersey+mybatis实现web项目第一篇
查看>>
C++形参中const char * 与 char * 的区别
查看>>
espresso 2.0.4 Apple Xcode 4.4.1 coteditor 价格
查看>>
Object-C中emoji与json的问题
查看>>
linux 命令
查看>>
灾后重建
查看>>
Nothing 和 Is
查看>>