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

这里给出两种尝试: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. mongodb的安装和启动

    1.在mongodb的官网上下载安装包 https://www.mongodb.com/download-center 选择对应你的系统的安装包下载 如果下载不了 可以使用这个链接下载http://d ...

  2. scala基础入门

    1.scala当中申明值和变量 scala当中的变量申明可以使用两种方式,第一种使用val来申明变量.第二种使用var来申明变量. 申明变量语法 val/var 变量名 [:变量类型] = 变量值 其 ...

  3. linux性能系列--cpu

    一.先看看什么是CPU? 回答:中央处理器(Central Processing Unit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和 ...

  4. python网络爬虫--简单爬取糗事百科

    刚开始学习python爬虫,写了一个简单python程序爬取糗事百科. 具体步骤是这样的:首先查看糗事百科的url:http://www.qiushibaike.com/8hr/page/2/?s=4 ...

  5. css文字闪烁效果

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

  6. c++ 派生类的复制函数次序,及子父类兼容性

    #include <iostream> using namespace std; class CFatherSum //父类Sum { public: CFatherSum(){cout& ...

  7. BZOJ4446:[SCOI2015]小凸玩密室(树形DP)

    Description 小凸和小方相约玩密室逃脱,这个密室是一棵有n个节点的完全二叉树,每个节点有一个灯泡.点亮所有灯泡即可逃出密室. 每个灯泡有个权值Ai,每条边也有个权值bi.点亮第1个灯泡不需要 ...

  8. php filesize() 方法返回的文件大小异常

    问题描述:需要生成一个 700k 大小左右的文件,相关代码如下: <?php $handle = fopen('./split.log', 'a+'); $result = 0; while( ...

  9. MyBatis(1)-简单入门

    简介 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.My ...

  10. 安装IIS步骤图解

    这几日好些网友来找iis安装包,但是因为新浪爱问的共享资料已关闭导致下载链接不可用,笔者在新浪微盘的备份资料只有5.1版,现共享链接如下: IIS5.1 for windows xp下载链接http: ...