Matlab向量场可视化
2014-04-12 19:09
323 查看
本来是去回答百度知道里的问题的,自己技术不很够,折腾几个小时才搞明白,提交时已经有大神解决了问题了。。。。
是这个问题:
可以用Matlab画出如图微分方程的图像,请大神画出图像给我可以吗?_百度知道
http://zhidao.baidu.com/question/1881911534009541028.html
然后又悲剧地发现自己的结果和大神的不一样。。。。
公式是:
我得承认大神的代码比我的还是简洁多了,写函数时用了arrayFun,好简洁的。我是一个个写的。。。。
但是觉得我做出来的这个还是有点特点的,所以贴出来,和大家交流一下:
我的思路是:
这个问题是在一定的xyz范围内,对每一个点(x,y,z)生成对应的dB并积分,然后作出图像。图中的那个积分式,对于每个(x,y,z)点都要计算一次,由它决定锥形的方向与大小(积分结果是一个向量,当然就决定了方向,然后其模长就是锥形的大小)。
我采用的数值如下:
R=0.1
I=0.1
x,y,z都在[-15,15]区间内,间隔为2.
图像是这样的,我觉得这个图好神奇,照了很多个角度:
代码如下:
大神的结果是:
代码是:
MATLAB中向量场的可视化 - Lemniscate的日志 - 网易博客
http://379910987.blog.163.com/blog/static/33523797201162223310546/
Matlab科学计算可视化——基于wind的向量数据集合_柏杨李赞_新浪博客
http://blog.sina.com.cn/s/blog_5e03a4510100n6yl.html
用matlab绘制箭头3-coneplot和streamslice命令 (zz)_懿之的博客_百度空间
http://hi.baidu.com/imheaventian/item/521cbeb407939f9718469712
关于用coneplot画图 - MATLAB 基础讨论 - MATLAB中文论坛 - Powered by Discuz!
http://www.ilovematlab.cn/thread-93141-1-1.html
MIT向量场绘图教程
http://web.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/AGV/DemoFiles/ScriptFiles/Part8_VectorFields.m
Matlab中matlab中for 循环的原理和应用_百度文库
http://wenku.baidu.com/link?url=3I_1ognyDGKwgBjCr-OMiVR34OMJexbKrBecj3VPP6ldk7BQegGkBsxHFE6X8ruIFy26Q9SQJfxxsVvfHHzvccueY077jOaqQu8okwswRcK
是这个问题:
可以用Matlab画出如图微分方程的图像,请大神画出图像给我可以吗?_百度知道
http://zhidao.baidu.com/question/1881911534009541028.html
然后又悲剧地发现自己的结果和大神的不一样。。。。
公式是:
我得承认大神的代码比我的还是简洁多了,写函数时用了arrayFun,好简洁的。我是一个个写的。。。。
但是觉得我做出来的这个还是有点特点的,所以贴出来,和大家交流一下:
我的思路是:
这个问题是在一定的xyz范围内,对每一个点(x,y,z)生成对应的dB并积分,然后作出图像。图中的那个积分式,对于每个(x,y,z)点都要计算一次,由它决定锥形的方向与大小(积分结果是一个向量,当然就决定了方向,然后其模长就是锥形的大小)。
我采用的数值如下:
R=0.1
I=0.1
x,y,z都在[-15,15]区间内,间隔为2.
图像是这样的,我觉得这个图好神奇,照了很多个角度:
代码如下:
clc clear all close all R=0.1; I=0.1; k=10^(-7);%k=u0/(4*pi) [x,y,z]=meshgrid(-15:2:15); u_fun=@(f)k.*R.*I.*z.*cos(f)./(sqrt((x-R.*cos(f)).^2+(y-R.*sin(f)).^2+z.^2)).^3; v_fun=@(f)k*R*I.*z*sin(f)./(sqrt((x-R*cos(f)).^2+(y-R*sin(f)).^2+z.^2)).^3; w_fun=@(f)-k*R*I*(sin(f)*(y-R*sin(f))+cos(f)*(x-R*cos(f)))./(sqrt((x-R*cos(f)).^2+(y-R*sin(f)).^2+z.^2)).^3; u=integral(u_fun,0,2*pi,'ArrayValued',true); v=integral(@(f)v_fun(f),0,2*pi,'ArrayValued',true); w=integral(@(f)w_fun(f),0,2*pi,'ArrayValued',true); [cx,cy,cz]=meshgrid([-15:2:15]); h=coneplot(x,y,z,u,v,w,cx,cy,cz,5); set(h,'FaceColor','r','EdgeColor','none'); camlight;lighting gouraud; grid on;box on;
大神的结果是:
代码是:
L = R; I = 0.1; R = 0.1; u0 = pi*4e-7; dB = @(x,y,z,t) u0/4*pi * [ R*I*z*cos(t); R*I*z*sin(t); ... R*I*(sin(t).*(y-R*sin(t))+cos(t).*(x-R*cos(t))) ] / ... sqrt( (x-R*cos(t)).^2 + (y-R*sin(t)).^2 + z.^2 ).^3; B = @(x,y,z) quadv(@(t)dB(x,y,z,t),0,2*pi); [x,y,z] = meshgrid(linspace(-L,L,10)); B = arrayfun(B,x,y,z,'UniformOutput',false); [m,n,l] = size(B); [m,n,l] = meshgrid(1:m,1:n,1:l); Bx = arrayfun(@(i,j,k)B{i,j,k}(1),m,n,l); By = arrayfun(@(i,j,k)B{i,j,k}(2),m,n,l); Bz = arrayfun(@(i,j,k)B{i,j,k}(3),m,n,l); B = sqrt(Bx.^2+By.^2+Bz.^2); clf reset colordef(gcf,'black') [cx cy cz] = meshgrid(linspace(-L,L,10)); h=coneplot(x,y,z,Bx,By,Bz,cx,cy,cz,B,0.8); set(h,'EdgeColor', 'none'); view(35,25) xlabel('x'); ylabel('y'); zlabel('z'); box on; axis tight camlight left; camlight right; lighting phong
MATLAB中向量场的可视化 - Lemniscate的日志 - 网易博客
http://379910987.blog.163.com/blog/static/33523797201162223310546/
Matlab科学计算可视化——基于wind的向量数据集合_柏杨李赞_新浪博客
http://blog.sina.com.cn/s/blog_5e03a4510100n6yl.html
用matlab绘制箭头3-coneplot和streamslice命令 (zz)_懿之的博客_百度空间
http://hi.baidu.com/imheaventian/item/521cbeb407939f9718469712
关于用coneplot画图 - MATLAB 基础讨论 - MATLAB中文论坛 - Powered by Discuz!
http://www.ilovematlab.cn/thread-93141-1-1.html
MIT向量场绘图教程
http://web.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/AGV/DemoFiles/ScriptFiles/Part8_VectorFields.m
Matlab中matlab中for 循环的原理和应用_百度文库
http://wenku.baidu.com/link?url=3I_1ognyDGKwgBjCr-OMiVR34OMJexbKrBecj3VPP6ldk7BQegGkBsxHFE6X8ruIFy26Q9SQJfxxsVvfHHzvccueY077jOaqQu8okwswRcK
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 从java中调用matlab详细介绍
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- Matlab
- MATLAB 入门教程
- matlab函数_连通区域
- MATLAB中函数模式和命令模式的区别
- MATLAB for Mac使编辑器支持中文
- [转]matlab中plot用法
- matlab程序优化以及eclipse与github的结合
- matlab中的rand函数(用于产生随机数)
- MATLAB R2012a 安装到 Ubuntu 12.10
- 关于matlab图像处理
- c中启动和关闭matlab引擎遇到的问题
- C++实现矩阵类,实现了大部分矩阵运算功能,大家可以类比matlab
- 高斯-勒让德求积公式