圆形膜的振动
这个例子展示了如何计算一个圆形膜的振动模式。
振动模式的计算需要的解决特征值偏微分方程。这个例子比较了解决方案获得通过solvepdeeig
从偏微分工具箱™和解决者eigs
解算器从MATLAB®。特征值计算solvepdeeig
和eigs
几乎是相同的,但在某些情况下一个解算器比其他更方便。例如,eigs
更方便在计算指定数量的特征值附近的一个特定的目标价值。而solvepdeeig
要求较低和上界围绕这一目标,eigs
只需要目标特征值和所需数量的特征值。
创建一个PDE模型。
模型= createpde;
创建一个圆几何和包括在模型中。
半径= 2;g = decsg((1 0 0半径)”,“C1”,(“C1”)');geometryFromEdges(模型中,g);
情节的几何边缘标签。
图pdegplot(模型,“EdgeLabels”,“上”)轴平等的标题(“与标签边缘几何”)
指定系数。
c = 1 e2;= 0;f = 0;d = 10;specifyCoefficients(模型,“m”0,“d”d“c”c“一个”一个,“f”f);
指定解决方案是零在所有四个圈的外缘。
布特= applyBoundaryCondition(模型,“边界条件”,“边缘”(1:4),“u”,0);
生成一个网格。
generateMesh(模型,“Hmax”,0.2);
使用assembleFEMatrices
计算全球有限元质量和刚度矩阵使用零空间与边界条件的方法。
FEMatrices = assembleFEMatrices(模型,“零空间”);K = FEMatrices.Kc;B = FEMatrices.B;M = FEMatrices.M;
通过求解特征值问题eigs
函数。
σ= 1 e2;numberEigenvalues = 5;[eigenvectorsEigs, eigenvaluesEigs] = eigs (K、M、numberEigenvaluesσ);
重塑对角eigenvaluesEigs
矩阵向量。
eigenvaluesEigs =诊断接头(eigenvaluesEigs);
找到最大的特征值及其指标特征值向量。
[maxEigenvaluesEigs, maxIndex] = max (eigenvaluesEigs);
添加约束值的特征向量。
eigenvectorsEigs = B * eigenvectorsEigs;
现在,解决使用相同的特征值问题solvepdeeig
。设置范围solvepdeeig
稍微比范围eigs
。
r = [min (eigenvaluesEigs) * 0.99马克斯(eigenvaluesEigs) * 1.01);结果= solvepdeeig(模型中,r);
基础= 10,时间= 0.06,新conv eig = 1 = 13,时间= 0.07,新conv eig = 1 = 16,时间= 0.08,新conv eig = 1基础= 19日时间= 0.08,新conv eig = 2基础= 22日时间= 0.10,新conv eig = 3 = 25,时间= 0.10,新conv eig = 4基础= 28日时间= 0.10,新conv eig = 8基础= 31日时间= 0.11,新conv eig = 10月底扫描:基础= 31日时间= 0.12,新conv eig = 10 = 20,时间= 0.13,新conv eig = 0横扫的终结:基础= 20,时间= 0.13,新conv eig = 0
eigenvectorsPde = result.Eigenvectors;eigenvaluesPde = result.Eigenvalues;
比较解决方案。金宝搏官方网站
eigenValueDiff =排序(eigenvaluesPde)——排序(eigenvaluesEigs);流([“马克斯区别特征值”…从solvepdeeig eigs: % e \ n '),…规范(eigenValueDiff正));
最大区别特征值从solvepdeeig eigs: 2.984279 e-13
两个函数计算相同的特征值。对于任何一个特征值,你可以用特征向量乘以任意标量。的eigs
和solvepdeeig
功能可能会选择不同的任意标量正常化的特征向量。
h =图;h。位置= [1 1 2 1]。* h.Position;次要情节(1、2、1)轴平等的pdeplot(模型,“XYData”eigenvectorsEigs (: maxIndex),“轮廓”,“上”)标题(sprintf (“eigs特征向量,特征值:% 12.4 e”,…eigenvaluesEigs (maxIndex)))包含(“x”)ylabel (“y”次要情节(1、2、2)轴平等的pdeplot(模型,“XYData”eigenvectorsPde(:结束),“轮廓”,“上”)标题(sprintf (“solvepdeeig特征向量,特征值:% 12.4 e”,…eigenvaluesPde(结束)))包含(“x”)ylabel (“y”)