matlab有限元计算程序设计,matlab – 有限元程序设计

我正在努力教自己如何有限元方法.

我在Matlab中编程以对单个8节点立方体元素执行有限元分析.我已经定义了xi,eta,zeta局部轴(我们现在可以将其视为x,y,z),因此我得到以下形状函数:

%%shape functions

zeta = 0:.01:1;

eta = 0:.01:1;

xi = 0:.01:1;

N1 = 1/8*(1-xi).*(1-eta).*(1-zeta);

N2 = 1/8*(1+xi).*(1-eta).*(1-zeta);

N3 = 1/8*(1+xi).*(1+eta).*(1-zeta);

N4 = 1/8*(1-xi).*(1+eta).*(1-zeta);

N5 = 1/8*(1-xi).*(1-eta).*(1+zeta);

N6 = 1/8*(1+xi).*(1-eta).*(1+zeta);

N7 = 1/8*(1+xi).*(1+eta).*(1+zeta);

N8 = 1/8*(1-xi).*(1+eta).*(1+zeta);

根据我正在阅读的文字,[N]矩阵将按此布置:

%N Matrix

N= [N1 0 0 N2 0 0 N3 0 0 N4 0 0 N5 0 0 N6 0 0 N7 0 0 N8 0 0;

0 N1 0 0 N2 0 0 N3 0 0 N4 0 0 N5 0 0 N6 0 0 N7 0 0 N8 0;

0 0 N1 0 0 N2 0 0 N3 0 0 N4 0 0 N5 0 0 N6 0 0 N7 0 0 N8];

要找到[B]矩阵,我必须使用以下[D]矩阵:

%%Del Matrix for node i

%[ d/dx 0 0

% 0 d/dy 0

% 0 0 d/dz . . .

% d/dy d/dx 0

% 0 d/dz d/dy

% d/dz 0 d/dx ]

这是一个继续[N]的运算符. (B = DN)

稍后,正如文本所示,我将进行计算,涉及该[B]矩阵的积分超过该元素的体积.

所以,我的问题是,如何将这些多项式形状函数存储在矩阵中,以差分对它们进行操作,然后以数字方式对它们进行积分.我现在可以告诉我这个设置的方式,它不会工作,因为我已经将函数定义为区间[0,1]上的向量,然后将这些向量存储在[N]矩阵中.然后使用diff()函数进行适当区分以找到[B]矩阵.

但由于[B]的矩阵元素现在是区间[0,1]的向量,我认为这会引起问题.你们将如何进行我在上面发布的教科书中描述的这些计算?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值