对于下底面和侧面绝热,上底面温度与半径平方成正比的柱体,绘制柱体内温度分布图。

这里给出两种尝试:1、散点图;2、切片云图

1. 散点图仿真

首先使用解析算法求的场解值的解析表达,其次求解Bessel函数零点,带入场解表达。对于空间点阵划分,采用每一定半径划分圆周上等数量点,在总方向复制累计。

下面给出散点图的仿真代码,Nt为划分精度,Nt越大空间划分点越多。

% function y = cal117(R,h,Nt,N)
close all; clear all
R = ;
h = ;
Nt = ; %% 求bessel函数零点
pi0 = besal_pi0(,Nt); %% 计算圆柱体分割点坐标,作为u的前三列坐标
m = ;
cot = ;
for i = :
[x_,y_,z_] = cylinder((R*i/),m-);
for k = : m
for j = :
cot = cot + ;
u(cot,) = x_(,k);
u(cot,) = y_(,k);
u(cot,) = h*j/();
u(cot,) = ; %test
end
end
end %% 计算温度值 u第四列为温度值
for i = : cot
for j = : Nt
ct(j) = *(R^)*(-/(pi0(j)^))/(pi0(j)*besselj(,pi0(j))*sinh(pi0(j)*h/R));
u(i,) = u(i,)+ ct(j)*sinh(pi0(j)*u(i,)/R)*besselj(,pi0(j)*sqrt(u(i,)^+u(i,)^)/R);
if(u(i,)>)
u(i,)=NaN;
end
end
end %% 图像绘制
[x0,y0,z0] = cylinder(R,); %画圆柱体轮廓
z0 = h * z0;
plot3(x0(,:),y0(,:),z0(,:),'k');hold on
plot3(x0(,:),y0(,:),z0(,:),'k');hold on
for i = : :
plot3([x0(,i),x0(,i)],[y0(,i),y0(,i)],[z0(,i),z0(,i)],'k');hold on
end x = u(:,);
y = u(:,);
z = u(:,);
c = u(:,); % [X,Y] = meshgrid(linspace(min(x),max(x),)',linspace(min(y),max(y),30)');
% Z = griddata(x,y,z,X,Y,'v4');
% C =griddata(x,y,c,X,Y,'v4'); scatter3(x,y,z,,'filled','k');
axis([-(R+) (R+) -(R+) (R+) (h+)]); % scatter3(x,y,z,,c,'filled');
% axis([-(R+) (R+) -(R+) (R+) (h+)]);
% colorbar;

2. 切片云图绘制

空间点集划分同上,其中将四位数组转化为三维数组,坐标三维即坐标点位置,值即温度值。

可以绘制出纵向切片图、整体剖面图和等温面图三张图:

clear; clc;
pi0 = besal_pi0(,);
R = ;
h = ;
xa = ;
xb = ;
xc = ;
v = zeros(xa,xb,xc); for i = : xa
for j = : xb
for k = : xc
for t = :
ct(t) = *(R^)*(-/(pi0(t)^))/(pi0(t)*besselj(,pi0(t))*sinh(pi0(t)*h/R));
v(i,j,k)=v(i,j,k)+ ct(t)*sinh(pi0(t)*k/R)*besselj(,pi0(t)*sqrt((i-)^+(j-)^)/R);
end
% if(k>)
% v(i,j,k) = NaN;
% end
if((i-)^+(j-)^>)
v(i,j,k) = NaN;
end
end
end
end [x,y,z]=meshgrid(:xb,:xa,:xc);% 坐标值的范围
h=figure();% 第一幅图
% 各大切片
set(h,'name','取单切片')
subplot()% 切片1
slice(x,y,z,v,[],[],[]);
shading interp
% set(gca,'zdir','reverse');
axis equal
grid on
colorbar subplot()% 切片2
slice(x,y,z,v,[],[],[]);
shading interp
colormap('jet')
% set(gca,'zdir','reverse');
axis equal
grid on
colorbar subplot()% 切片3
slice(x,y,z,v,[],[],[]);
shading interp
% set(gca,'zdir','reverse');
axis equal
grid on
colorbar subplot()% 切片4
slice(x,y,z,v,[],[],[]);
shading interp
% set(gca,'zdir','reverse');
axis equal
grid on
colorbar
%%
h2=figure();
figure('menubar','figure');
% rotate 3D
set(h2,'name','全空间切片','MenuBar','none','ToolBar','none')
slice(x,y,z,v,[::xb],[ ],[ ])
shading interp
colorbar
colormap('jet')
% set(gca,'zdir','reverse');
axis equal
grid on
% box on %%
h3=figure();
figure('menubar','figure');
set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
set(gcf,'InvertHardcopy','off')
fw=; %%此值为最外层包络面取值
fv=isosurface(x,y,z,v,fw);% 等值面
p=patch(fv); set(p,'facecolor','b','edgecolor','none');
patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');
colorbar colormap('jet')
box on
daspect([,,])
view() camlight
camproj perspective
lighting phong % 光照处理
axis equal
grid on
title(['最外层表面的值为: ' , num2str(fw),'^{o}C']);

最后贴上一些效果图哈:

柱体内温度分布图 MATLAB的更多相关文章

  1. 【转】判断点在多边形内(matlab)

    inpolygon -Points inside polygonal region Syntax IN = inpolygon(X,Y,xv,yv)[IN ON] = inpolygon(X,Y,xv ...

  2. MATLAB R2018b Mac中文版安装教程

    MATLAB r2018b mac中文版是一款强大的可视化数学分析软件,专门用于在Mac上执行数值计算,编程和可视化任务时极大地提高您的工作效率.在MATLAB的帮助下,您可以分析数据,创建应用程序, ...

  3. 无线智联-程序篇:让python与matlab牵手

    python和matlab本来是青梅竹马的好基友,奈何相爱相杀,经常放在一起做对比,就好比经常听到的,“你看看隔壁xx家的孩子”,其实每个孩子都有每个孩子的优点,如果能发挥每个孩子的优点,岂不是更好. ...

  4. python调用matlab

    官网链接: https://ww2.mathworks.cn/help/matlab/matlab_external/call-user-script-and-function-from-python ...

  5. Ubuntu 18.04 MATLAB 安装及配置

    转载请注明出处,谢谢 原创作者:Mingrui 原创链接:https://www.cnblogs.com/MingruiYu/p/12367846.html 本文要点: Ubuntu 18.04 安装 ...

  6. matlab中exist 检查变量、脚本、函数、文件夹或类的存在情况

    参考: 1.https://ww2.mathworks.cn/help/matlab/ref/exist.html?searchHighlight=exist&s_tid=doc_srchti ...

  7. 解气!哈工大被禁用MATLAB后,国产工业软件霸气回击

    提起哈尔滨工业大学,相信很多人都不会陌生. 它是中国顶级的C9院校之一,从1920年建校的百余年来,哈工大一直享誉"工科强校"的美称,因其在航天领域的不凡成就,更是被人们誉为&qu ...

  8. 【转】GPS连续运行单参考站解决方案

    GPS连续运行单参考站解决方案   一.  前言 随着国家信息化程度的提高及计算机网络和通信技术的飞速发展,电子政务.电子商务.数字城市.数字省区和数字地球的工程化和现实化,需要采集多种实时地理 空间 ...

  9. Cocos2d-x学习小结 开始篇

    Cocos2d-x学习小结 开始篇 想要学习Cocos2d-x,是因为在高中物理课上找不到某些物理定律的证明,例如欧姆定律. 为此,我翻阅了稍高等级的物理教材,其中关于欧姆定律\(R=\frac{U} ...

随机推荐

  1. 验证 Xcode是否有效方法

    苹果给出了验证 Xcode 的方法,需要用户在终端中执行下面的命令: spctl --assess --verbose /Applications/Xcode.app 如果 Xcode 从 Mac A ...

  2. 关于Class类的getResource().getPath()方法

    程序中配置文件如果放置在classes文件夹,那么我们就可以使用Class类的getResource().getPath()方法获取文件路径. 例如: String path = DBUtil.cla ...

  3. 【转】用instruments来检验你的app

    一篇非常好的关于instruments使用的文章! 连接在此

  4. video设置视频的播放位置(本例中实现效果是视频第一次播放完成后,接下来中从视频的中间部位开始循环播放)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. JavaScript浏览器对象模型(BOM)之window对象

    一.BOM概述 BOM(Browser Object Model)浏览器对象模型,它提供了很多对象,用于访问浏览器的功能. BOM 缺少规范,每个浏览器提供商又按照自己想法去扩展它,那么浏览器共有对象 ...

  6. 1588. [HNOI2002]营业额统计【平衡树-splay 或 线段树】

    Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...

  7. 【node.js】事件循环、EventEmitter

    Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发. 事件驱动程序 ...

  8. ERDAS IMAGINE 2014 32位 破解安装

    1.        安装Install ERDAS Foundation 2014 2.        安装ERDAS IMAGINE 2014  32位 3.        安装Intergraph ...

  9. java中NULL与" "的区别

    null是没有地址""是有地址但是里面的内容是空的 null和""的区别 问题一: null和""的区别 String s=null; st ...

  10. Linux 内核版本号查看

    简要:1,lsb_release -a 查看linux系统版本 2,uname -a 查看内核版本