原帖由 gutouqie 于 2010-7-6 14:37 发表
李老师,我知道用这个方法,课可是在具体操作方面还有问题,一个方程里有都u(i,j),v(i,j)忘我就不知道怎么弄了,平时只求过一个变量的,比如u(i,j)。
多个变量的处理方法与一个变量相同。 离散化过程中不会遇到问题, 都采用中心格式离散。
u''xx (i,j)= (u(i+1,j)+u(i-1,j)-2u(i,j))/(hx*hx)
u''xy(i,j)=(u(i+1,j+1)+u(i-1,j-1)-u(i-1,j+1)-u(i-1,j-1))/(4*hx*hy)
离散后,得到一个关于u(i,j), v(i,j)的代数方程组,形如:
a1*u(i+1,j)+a2*u(i-1,j)+a3*u(i,j)+a4*u(i,j+1)+a5*u(i,j-1)+a6*v(i+1,j+1)+a7*v(i-1,j-1)+a8*v(i+1,j-1)+a9*v(i-1,j+1)+a10=0
b1*v(i+1,j)+b2*v(i-1,j)+b3*v(i,j)+b4*v(i,j+1)+b5*v(i,j-1)+b6*u(i+1,j+1)+b7*u(i-1,j-1)+b8*u(i+1,j-1)+b9*u(i-1,j+1)+b10=0
如果利用Jocabi或Seidel迭代法,则把u(i,j),v(i,j)形式上解出来,构造迭代关系式:
u(i,j)=(-a1*u(i+1,j)-a2*u(i-1,j)-a4*u(i,j+1)......-a10)/a3
v(i,j)=(-b1*v(i+1,j)-b2*v(i-1,j)-b4*v(i,j+1)......-b10)/b3
迭代收敛就可以了。
如果系数的性质很差(例如不具备对角占优特点)则有可能迭代不收敛。 这时可采用其他迭代方法。
[ 本帖最后由 lixl-imech 于 2010-7-7 10:44 编辑 ] |