版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/walkandthink/article/details/78682431
对于拉普拉斯算符
先来看一维的情形,在等参单元中,全局坐标(
同时也会有:
对任意等参一维单元(只考虑沿
在等参空间中对其求偏导可以得到:
再对其求一次偏导可以得到:
将我们需要的
这个就是我们需要的针对高阶算符的二阶偏导了,对二维单元可以用同样的思路,通过链式法则来得到二维的二阶偏导,这里就不再给出了。
用三点lagrange插值多项式大概画一下,代码如下:
def N1(x):
return (x - x2)*(x - x3)/((x1 - x2)*(x1 - x3))
def dN1(x):
return (x - x2)/((x1 - x2)*(x1 - x3)) + (x - x3)/((x1 - x2)*(x1 - x3))
def d2N1(x):
return 2/((x1 - x2)*(x1 - x3))
import numpy as np
import matplotlib.pyplot as plt
x1=-1.0;x2=0.0;x3=1.0
x=np.linspace(x1,x3,50)
n1=N1(x)
dn1=dN1(x)
d2n1=d2N1(x)*np.ones(50)
plt.figure(1)
plt.subplot(131)
plt.title('$N_{1}$',fontsize=18)
plt.plot(x,n1)
plt.subplot(132)
plt.title(r'$\frac{\partial N_{1}}{\partial x}$',fontsize=18)
plt.plot(x,dn1)
plt.subplot(133)
plt.title(r'$\frac{\partial^{2}N_{1}}{\partial x^{2}}$',fontsize=18)
plt.plot(x,d2n1)
#plt.xticks(fontsize=12)
#plt.yticks(fontsize=12)
plt.savefig('shp2dnd.png',dpi=800,bbox_inches='tight')
结果如下:
常规的二阶单元在一次偏导之后基本就退化成线性函数了,要计算二阶偏导必须要求单元形函数满足