三维解决方案并与MATLAB函数梯度的阴谋
类型的3 d情节中可用的解决方案MATLAB
除了表面和梯度情节与PDE绘图功能可用,您可以使用MATLAB®图形功能来创建更多类型的情节的3 d模型。
情节在一个二维切片——检查解决方案的内部几何,定义一个二维网格相交的几何和插入解决方案到电网上。有关示例,请参见二维切片通过3 d几何和通过3 d轮廓切割解决方案。虽然这两个例子显示平面网格片,你也可以切片在曲面的网格。
简化或颤情节——情节梯度溶液的流线或一颤。看到块梯度和流线。
您可以使用任何MATLAB绘图命令创建3 d的阴谋。看到标量体积数据的可视化技术和体积可视化向量数据。
二维切片通过3 d几何
这个例子展示了如何通过一个3 d几何从二维切片获得土地。
现在的问题是
在3 d板尺寸10-by-10-by-1,
在时间t = 0
狄利克雷边界条件,
设置和解决PDE
定义一个函数的非线性f
系数在语法中给出specifyCoefficients f系数。
函数bcMatrix = myfffun(地区、州)
bcMatrix = 1 + 10 * region.z。^ 2 + region.y;
导入几何和检查标签。
模型= createpde;g = importGeometry(模型,“Plate10x10x1.stl”);pdegplot (g,“FaceLabels”,“上”,“FaceAlpha”,0.5)
编号1到6。
创建系数和边界条件。
c = 1;= 0;d = 1;f = @myfffun;specifyCoefficients(模型,“m”0,“d”d“c”c“一个”一个,“f”f);applyBoundaryCondition(模型,“边界条件”,“面子”1:6,“u”,0);
零初始条件。
setInitialConditions(模型中,0);
创建一个网格面不超过0.3。
generateMesh(模型,“Hmax”,0.3);
设置时间从0到0.2,解决PDE。
tlist = 0:0.02:0.2;结果= solvepde(模型、tlist);
剧情片的解决方案
创建一个网格(x, y, z)
点,x = 5
,y
范围从0到10,z
范围从0到1。插入这些网格点的解决方案和所有时间。
yy = 0:0.5:10;zz = 0:0.25:1;[YY, ZZ] = meshgrid (YY, ZZ);XX = 5 *的(大小(YY));uintrp = interpolateSolution(结果,XX, YY、ZZ 1:长度(tlist));
解矩阵uintrp
有11列,每一次tlist
。第二列插值解决方案,这对应于时间0.02。
usol = uintrp (:, 2);
的元素usol
来自插值的解决方案XX
,YY
,ZZ
矩阵,每个5-by-21对应z-by-y
变量。重塑usol
同一5-by-21大小,并作出解决方案的曲面图。也使表面情节对应乘以0.06,0.10和0.20。
图usol =重塑(usol、大小(XX));次要情节(2、2、1)冲浪(usol)标题(“t = 0.02”)zlim ([0, 1.5]) xlim ([1, 21]) ylim ((1、5)) usol = uintrp (:, 4);usol =重塑(usol、大小(XX));次要情节(2 2 2)冲浪(usol)标题(“t = 0.06”)zlim ([0, 1.5]) xlim ([1, 21]) ylim ((1、5)) usol = uintrp (:, 6);usol =重塑(usol、大小(XX));次要情节(2,2,3)冲浪(usol)标题(“t = 0.10”)zlim ([0, 1.5]) xlim ([1, 21]) ylim ((1、5)) usol = uintrp (:, 11);usol =重塑(usol、大小(XX));次要情节(2,2,4)冲浪(usol)标题(“t = 0.20”)zlim ([0, 1.5]) xlim ([1, 21]) ylim ((1、5))
通过3 d轮廓切割解决方案
这个例子显示了如何创建轮廓切割不同方向通过3 d几何解决方案。
设置和解决PDE
问题是与零解泊松方程狄利克雷边界条件复杂的几何形状。泊松方程
偏微分方程工具箱™解决方程形式
所以你可以代表通过设置的问题 和 。任意设置 。
c = 1;= 0;f = 10;
解决任何3 d PDE问题的第一步是创建一个PDE模型。这是一个容器,持有的数量方程,几何,PDE网格和边界条件。创建模型,然后导入”ForearmLink.stl”
文件和查看几何。
N = 1;模型= createpde (N);importGeometry(模型,“ForearmLink.stl”);pdegplot(模型,“FaceAlpha”,0.5)视图(-42,24)
指定PDE系数
包括PDE系数模型
。
specifyCoefficients(模型,“m”0,“d”0,“c”c“一个”一个,“f”f);
创建零狄利克雷边界条件在所有的面孔。
applyBoundaryCondition(模型,“边界条件”,…“面子”1:model.Geometry.NumFaces,…“u”,0);
创建一个网格,解决PDE。
generateMesh(模型);结果= solvepde(模型);
画出轮廓切割解决方案
因为边界条件 在所有的脸,解决方案 只在内部非零。检查室内,一个矩形网格覆盖几何间隔的一个单位在每个坐标方向。
[X, Y, Z] = meshgrid (0:135, 0:35 0:61);
策划和分析,创建一个PDEResults
对象的解决方案。在每个网格点插值结果。
V = interpolateSolution(因此,X, Y, Z);V =重塑(V,大小(X));
绘制等高线片为不同的值 。
图colormap飞机contourslice (X, Y, Z, V,[],[], 0:5:60)包含(“x”)ylabel (“y”)zlabel (“z”)colorbar视图(-11,14)轴平等的
绘制等高线片为不同的值 。
图colormap飞机contourslice (X, Y, Z, V,[], 1:6:31,[])包含(“x”)ylabel (“y”)zlabel (“z”)colorbar视图(-62年,34)轴平等的
节省内存通过评估
对于大型问题您可以创建好的3 d网格时耗尽内存。此外,它可以耗费时间来评估一个完整的电网解决方案。节省内存和时间,评估只点你的阴谋。您还可以使用该技术插入倾斜网格,或其他表面。
例如,插入一个网格解决方案在倾斜的平面上 , , 。同时绘制轮廓和颜色的表面数据。使用细网格,间隔为0.2。
(X, Y) = meshgrid (0:0.2:135 0:0.2:35);Z = X / 10 + Y / 2;V = interpolateSolution(因此,X, Y, Z);V =重塑(V,大小(X));图次要情节(2,1,1)轮廓(X, Y, V);轴平等的标题(“倾斜平面等高线图”)包含(“x”)ylabel (“y”)colorbar次要情节(2,1,2)冲浪(X, Y, V,“线型”,“没有”);轴平等的视图(0 90)标题(“倾斜平面彩色图”)包含(“x”)ylabel (“y”)colorbar
块梯度和流线
这个例子展示了如何计算的近似梯度的解决方案,以及如何使用这些梯度在颤抖的情节或简化情节。
问题是计算平均出口时间的布朗粒子从一个区域包含吸收(逃避)边界和反射边界。有关更多信息,请参见九死一生的问题。PDE是泊松方程和常系数。几何图形是一个简单的长方体。解决方案 代表的意思是时间一个粒子开始的位置 退出该地区。
导入和查看几何
模型= createpde;importGeometry(模型,“Block.stl”);pdegplot(模型,“FaceLabels”,“上”,“FaceAlpha”,0.5)视图(-42,24)
设置边界条件
设置面临1、2和5的粒子可以逃避的地方。在这些面孔,解决方案 。保持默认反射边界条件在面临3、4、6。
applyBoundaryCondition(模型,“边界条件”,“面子”(1、2、5),“u”,0);
创建PDE系数
PDE是
在偏微分方程工具箱™语法,
这个方程转化为系数c = 1
,一个= 0
,f = 2
。输入系数。
c = 1;= 0;f = 2;specifyCoefficients(模型,“m”0,“d”0,“c”c“一个”一个,“f”f);
创建网格,解决PDE
初始化网格。
generateMesh(模型);
解决PDE。
结果= solvepde(模型);
检查解决方案在一个轮廓片情节
创建一个网格和插入电网解决方案。
[X, Y, Z] = meshgrid (0:135, 0:35 0:61);V = interpolateSolution(结果,X, Y, Z);V =重塑(V,大小(X));
创建一个轮廓切片图五的固定值y
协调。
图colormap飞机contourslice (X, Y, Z, V,[], 0:4:16,[])包含(“x”)ylabel (“y”)zlabel (“z”)xlim ([0100]) ylim ([0, 20]) zlim([0, 50])轴平等的(-50年,22)colorbar视图
附近的粒子最大的平均出口时间点 。
使用渐变颤抖和简化情节
检查的详细解决方案评估解决方案的梯度。使用一个相当粗网格,这样您就可以看到详细的颤抖和简化情节。
[X, Y, Z] = meshgrid (1:9:99, 1:3:20 1:6:50);[gradx, grady, gradz] = evaluateGradient(结果,X, Y, Z);
情节梯度向量。第一个重塑近似渐变网格的形状。
gradx =重塑(gradx、大小(X));grady =重塑(grady,大小(Y));gradz =重塑(gradz、大小(Z));图quiver3 (X, Y, Z, gradx grady, gradz)轴平等的包含(“x”)ylabel (“y”)zlabel (“z”)标题(“颤阴谋的梯度估计解决方案”)
情节的简化近似梯度。开始从稀疏的流线的初始点集。
持有在[sx, sy, sz) = meshgrid ([1, 46], 1:6:20 1:12:50);简化(X, Y, Z, gradx grady, gradz, sx, sy, sz)标题(“与流线颤阴谋”)举行从
流线显示小的值y
和z
给更大的平均出口时间。他们也显示x
协调有着重要的影响u
当x
很小,但什么时候x
大于40岁,大值有什么影响u
。同样的,当z
小于20,其价值观有什么影响u
。