主要内容

三维解决方案并与MATLAB函数梯度的阴谋

类型的3 d情节中可用的解决方案MATLAB

除了表面和梯度情节与PDE绘图功能可用,您可以使用MATLAB®图形功能来创建更多类型的情节的3 d模型。

二维切片通过3 d几何

这个例子展示了如何通过一个3 d几何从二维切片获得土地。

现在的问题是

u t - - - - - - Δ u = f

在3 d板尺寸10-by-10-by-1, u = 0 在时间t = 0狄利克雷边界条件,

f ( x , y , z ) = 1 + y + 1 0 z 2

设置和解决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)

图包含一个坐标轴对象。坐标轴对象包含3颤类型的对象,补丁,线。

编号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))

图包含4轴对象。坐标轴对象1标题t = 0.02包含一个类型的对象的表面。轴2标题t = 0.06包含一个对象类型的表面。轴3标题t = 0.10包含一个对象类型的表面。坐标轴对象4标题t = 0.20包含一个类型的对象的表面。

通过3 d轮廓切割解决方案

这个例子显示了如何创建轮廓切割不同方向通过3 d几何解决方案。

设置和解决PDE

问题是与零解泊松方程狄利克雷边界条件复杂的几何形状。泊松方程

- - - - - - u = f

偏微分方程工具箱™解决方程形式

- - - - - - ( c u ) + 一个 u = f

所以你可以代表通过设置的问题 c = 1 一个 = 0 。任意设置 f = 1 0

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)

图包含一个坐标轴对象。坐标轴对象包含3颤类型的对象,补丁,线。

指定PDE系数

包括PDE系数模型

specifyCoefficients(模型,“m”0,“d”0,“c”c“一个”一个,“f”f);

创建零狄利克雷边界条件在所有的面孔。

applyBoundaryCondition(模型,“边界条件”,“面子”1:model.Geometry.NumFaces,“u”,0);

创建一个网格,解决PDE。

generateMesh(模型);结果= solvepde(模型);

画出轮廓切割解决方案

因为边界条件 u = 0 在所有的脸,解决方案 u 只在内部非零。检查室内,一个矩形网格覆盖几何间隔的一个单位在每个坐标方向。

[X, Y, Z] = meshgrid (0:135, 0:35 0:61);

策划和分析,创建一个PDEResults对象的解决方案。在每个网格点插值结果。

V = interpolateSolution(因此,X, Y, Z);V =重塑(V,大小(X));

绘制等高线片为不同的值 z

图colormap飞机contourslice (X, Y, Z, V,[],[], 0:5:60)包含(“x”)ylabel (“y”)zlabel (“z”)colorbar视图(-11,14)轴平等的

图包含一个坐标轴对象。坐标轴对象包含x, y ylabel包含了348个补丁类型的对象。

绘制等高线片为不同的值 y

图colormap飞机contourslice (X, Y, Z, V,[], 1:6:31,[])包含(“x”)ylabel (“y”)zlabel (“z”)colorbar视图(-62年,34)轴平等的

图包含一个坐标轴对象。坐标轴对象包含x, y ylabel包含了90个补丁类型的对象。

节省内存通过评估

对于大型问题您可以创建好的3 d网格时耗尽内存。此外,它可以耗费时间来评估一个完整的电网解决方案。节省内存和时间,评估只点你的阴谋。您还可以使用该技术插入倾斜网格,或其他表面。

例如,插入一个网格解决方案在倾斜的平面上 0 x 1 3 5 , 0 y 3 5 , z = x / 1 0 + y / 2 。同时绘制轮廓和颜色的表面数据。使用细网格,间隔为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

图包含2轴对象。坐标轴对象1标题倾斜平面等高线图,包含x, y ylabel包含一个类型的对象轮廓。坐标轴对象2标题颜色的情节在倾斜的平面上,包含x, y ylabel包含一个类型的对象的表面。

块梯度和流线

这个例子展示了如何计算的近似梯度的解决方案,以及如何使用这些梯度在颤抖的情节或简化情节。

问题是计算平均出口时间的布朗粒子从一个区域包含吸收(逃避)边界和反射边界。有关更多信息,请参见九死一生的问题。PDE是泊松方程和常系数。几何图形是一个简单的长方体。解决方案 u ( x , y , z ) 代表的意思是时间一个粒子开始的位置 ( x , y , z ) 退出该地区。

导入和查看几何

模型= createpde;importGeometry(模型,“Block.stl”);pdegplot(模型,“FaceLabels”,“上”,“FaceAlpha”,0.5)视图(-42,24)

图包含一个坐标轴对象。坐标轴对象包含3颤类型的对象,补丁,线。

设置边界条件

设置面临1、2和5的粒子可以逃避的地方。在这些面孔,解决方案 u = 0 。保持默认反射边界条件在面临3、4、6。

applyBoundaryCondition(模型,“边界条件”,“面子”(1、2、5),“u”,0);

创建PDE系数

PDE是

- - - - - - Δ u = - - - - - - u = 2

在偏微分方程工具箱™语法,

- - - - - - ( c u ) + 一个 u = f

这个方程转化为系数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 ylabel包含了64个补丁类型的对象。

附近的粒子最大的平均出口时间点 ( x , y , z ) = ( 1 0 0 , 0 , 0 )

使用渐变颤抖和简化情节

检查的详细解决方案评估解决方案的梯度。使用一个相当粗网格,这样您就可以看到详细的颤抖和简化情节。

[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”)标题(“颤阴谋的梯度估计解决方案”)

图包含一个坐标轴对象。坐标轴对象与标题颤抖的情节的梯度估计解决方案,包含x, y ylabel包含一个类型的对象颤。

情节的简化近似梯度。开始从稀疏的流线的初始点集。

持有[sx, sy, sz) = meshgrid ([1, 46], 1:6:20 1:12:50);简化(X, Y, Z, gradx grady, gradz, sx, sy, sz)标题(“与流线颤阴谋”)举行

图包含一个坐标轴对象。坐标轴对象与标题颤抖的情节与流线,包含x, y ylabel包含41颤类型的对象,线。

流线显示小的值yz给更大的平均出口时间。他们也显示x协调有着重要的影响ux很小,但什么时候x大于40岁,大值有什么影响u。同样的,当z小于20,其价值观有什么影响u