椭圆形方程的差分解法

最近看《热工流体数值计算》(俞冀阳,2012)中讲了一些典型的偏微分方程求解,按照其差分计算的方法,采用Java语言和Python语言进行了式2-8的求解。数学模型如下:

 

差分计算时,收敛精度的确定非常重要,必须按照网格的尺度确定收敛精度,
也即,网格尺寸越小,则需要收敛的精度必须越高,不然可能出现修正值被忽略,最终计算结果差异非常大的情况。精度的确定为:while(delta >= 0.01/n/n):
java 的计算速度较快,但是我认为可能需要调整为bigdata进行计算了,防止出现下图中的不规则曲线,当然也可能是由于绘图的原因。经过调试,其原因是因为导出的csv的精度只有两位,改成5位就没事了
BigDecimal 在除法计算的时候,必须控制精度,不然太慢
BigDecimal ap=aw.add(ae).add(an).add(as).divide(new BigDecimal(4),15,BigDecimal.ROUND_HALF_UP);

Python计算结果

Java计算结果







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值