发信人: mofia(面馆子), 信区: C
标 题: 方程组解法求助
发信站: 饮水思源 (2014年03月04日10:47:08 星期二)
screen.width - 200){this.width = screen.width - 200}">
截了个图,程序是求解二维稳态温度场的,50*50的网格,T[i][j]和k[i][j]均已赋初值,
在求解T[i][j]过程中k[i][j]和x,y等都为常数,用do,while循环进行迭代,停止条件为
相邻两次温度场差值小于0.001。因为不同位置的网格点有不同的方程,所以写了十一种方
程。在方程没有问题的情况下,有一些问题请教:
1.这样用if,else if迭代求解温度场是否可行。如果不行,有别的方法没。如果可行,是
否属于高斯赛德尔迭代法,不是的话该怎么对其用G-S迭代。
2.这样的关于T[i][j]的方程组,如果想写出其系数矩阵,是否有简便方法。
3.我用截图中的程序可以运行,但是在网格和精度要求不同的情况下可分别收敛,不过求
解结果完全不同,是否仍然为不收敛,问题是出在迭代方法还是方程上。
求大神帮忙解答一下,十分感谢。
补充一点M,N为常数21
--
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.48.200]
※ 修改:·mofia 于 2014年03月04日11:59:38 修改本文·[FROM: 202.120.48.200]
标 题: 方程组解法求助
发信站: 饮水思源 (2014年03月04日10:47:08 星期二)
截了个图,程序是求解二维稳态温度场的,50*50的网格,T[i][j]和k[i][j]均已赋初值,
在求解T[i][j]过程中k[i][j]和x,y等都为常数,用do,while循环进行迭代,停止条件为
相邻两次温度场差值小于0.001。因为不同位置的网格点有不同的方程,所以写了十一种方
程。在方程没有问题的情况下,有一些问题请教:
1.这样用if,else if迭代求解温度场是否可行。如果不行,有别的方法没。如果可行,是
否属于高斯赛德尔迭代法,不是的话该怎么对其用G-S迭代。
2.这样的关于T[i][j]的方程组,如果想写出其系数矩阵,是否有简便方法。
3.我用截图中的程序可以运行,但是在网格和精度要求不同的情况下可分别收敛,不过求
解结果完全不同,是否仍然为不收敛,问题是出在迭代方法还是方程上。
求大神帮忙解答一下,十分感谢。
补充一点M,N为常数21
--
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.48.200]
※ 修改:·mofia 于 2014年03月04日11:59:38 修改本文·[FROM: 202.120.48.200]
No comments:
Post a Comment