主要内容

pdeCoefficientsToDouble

将符号PDE系数转换为格式

描述

例子

多项式系数= pdeCoefficientsToDouble (symCoeffs转换结构的符号对象symCoeffs变成双精度数。输出是一个结构多项式系数,然后可以用来定义PDE模型的系数specifyCoefficients在偏微分方程工具箱™。

结构多项式系数包含系数dc一个,f为PDE系统提供表格

2 u t 2 + d u t · c u + 一个 u f

可以在PDE工具箱中解决的问题。有关更多信息,请参见可以使用PDE工具箱解决的方程(偏微分方程工具箱)

例子

全部折叠

创建一个符号PDE,表示变量的拉普拉斯量u (x, y)

信谊u (x, y)fPdeeq =拉普拉斯(u,[x y]) == f
Pdeeq (x, y) =

2 x 2 u x y + 2 y 2 u x y f

提取PDE的系数作为符号表达式并显示它们的值。

symCoeffs = pdeCoefficients(pdeeq,u,“象征”,真正的);structfun (@disp symCoeffs)

                       
                        
                         
                          0
                        
                       

                       
                        
                         
                          0
                        
                       
                      

- 1 0 0 - 1


                       
                        
                         
                          f
                        
                       

                       
                        
                         
                          0
                        
                       

pdeCoefficients将符号PDE转换为形式的标量PDE方程

2 u t 2 + d u t - c u + 一个 u f

然后提取系数一个cd,f进入结构symCoeffs

f.自symCoeffs符号对象,使用pdeCoefficientsToDouble把系数转换成数据类型。的系数类型的有效输入specifyCoefficients函数在PDE工具箱。

symCoeffs = subs(symCoeffs,f,-3);coeffs = pdeCoefficientsToDouble(symCoeffs)
多项式系数=带字段的结构:A: 0 c: [4x1 double] m: 0 d: 0 f: -3

求解一个有两个二阶偏微分方程的方程组。您可以通过象征性地提取PDE系数来求解PDE系统pdeCoefficients,将系数转换为使用的双精度数字pdeCoefficientsToDouble,并指定PDE模型中的系数specifyCoefficients

偏微分方程系统是指夹紧结构板在均压荷载作用下的挠度。带因变量的偏微分方程 u 1 而且 u 2 是由

- 2 u 1 + u 2 0

- D 2 u 2 p

在哪里 D 板的弯曲刚度是否为

D E h 3. 1 2 1 - ν 2

而且 E 是弹性模量, ν 为泊松比, h 是板厚, u 1 是板的横向偏转,和 p 是压力负荷。

为两个方程的系统创建一个偏微分方程模型。

模型= createpde(2);

创建一个正方形几何图形。指定正方形的边长。然后将几何图形包含在PDE模型中。

Len = 10.0;GDM = [3 4 0 len len 0 0 0 len len]';G = decsg(gdm,“S1 ',(“S1 ') ');geometryFromEdges(模型中,g);

指定系统物理参数的值。让外部压力 p 是一个符号变量总统可以取任何值。

E = 1.0e6;H_thick = 0.1;Nu = 0.3;D = E*h_thick^3/(12*(1 - nu^2));信谊总统

将偏微分方程系统声明为系统符号方程。提取PDE的系数,并以符号形式返回它们。

信谊u1 (x, y)u2 (x, y)Pdeeq =[-拉普拉斯(u1) + u2;- d *拉普拉斯(u2) - pres];symCoeffs = pdeCoefficients(pdeeq,[u1 u2],“象征”,真正的)
symCoeffs =带字段的结构:M: 0 a: [2x2 sym] c: [4x4 sym] f: [2x1 sym] d: 0

显示系数一个cf,d

structfun (@disp symCoeffs)

                       
                        
                         
                          0
                        
                       
                      

0 1 0 0

                      

1 0 0 0 0 1 0 0 0 0 25000 273 0 0 0 0 25000 273

                      

0 总统


                       
                        
                         
                          0
                        
                       

将值替换为总统使用潜艇函数。的输出潜艇是符号对象,使用pdeCoefficientsToDouble函数将系数转换为数据类型,这使它们成为PDE工具箱的有效输入。

symCoeffs = subs(symCoeffs,pres,2);coeffs = pdeCoefficientsToDouble(symCoeffs)
多项式系数=带字段的结构:A: [4x1 double] c: [16x1 double] m: 0 d: 0 f: [2x1 double]

指定PDE模型的PDE系数。

specifyCoefficients(模型,“米”coeffs.m,' d 'coeffs.d,...“c”coeffs.c,“一个”coeffs.a,“f”, coeffs.f);

指定弹簧刚度。通过在所有四条边上定义分布式弹簧来指定边界条件。

K = 1e7;bOuter =应用边界条件“纽曼”“边缘”(1:4),...‘g’[0 0],“问”, [0 0;k 0]);

指定几何图形的网格大小,并为PDE模型生成网格。

Hmax = len/20;generateMesh(模型,“Hmax”, hmax);

求解模型。

Res = solvepde(模型);

在节点位置访问解决方案。

u = res. nodesolution;

画出板的横向偏转。

numNodes = size(model.Mesh.Nodes,2);图;pdeplot(模型,“XYData”u (1: numNodes),“轮廓”“上”)标题“横向偏转”

图中包含一个轴对象。标题为横向偏转的轴对象包含12个类型为patch、line的对象。

求板中心的横向偏转。

wMax = min(u(1:numNodes,1))
wMax = -0.2763

将计算结果与分析计算的板中心挠度进行比较。

Pres = 2;wMax = -.0138*pres*len^4/(E*h_thick^3)
wMax = -0.2760

输入参数

全部折叠

符号形式的偏微分方程系数,指定为符号表达式的结构。

输出参数

全部折叠

双精度的偏微分方程系数,以双精度数的结构形式返回。

版本历史

R2021a中引入