鱼C论坛

 找回密码
 立即注册
查看: 8676|回复: 4

Python int too large to convert to C long

[复制链接]
发表于 2016-7-9 10:22:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 825501396 于 2016-7-20 05:30 编辑

大家好,本人才学Python,用来做数值模拟。现在在做的是一个简单的导热模拟。
其中有一个问题是Python int too large to convert to C long。
但是感觉数值并不是很大。一个13*13的网格,就开始显示这个错误。在网格是12*12时没问题,数值大小达到了
“7.56970244063e-20”,“-202436298”左右。感觉网格越是细,数就会越小,应该不会出现太大这个问题吧。但e-20也是够吓人的。

请问有没有好的办法解决。
笔记本电脑,i52425处理器,内存8G
硬件会有关系么

错误

错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-9 11:22:42 | 显示全部楼层
矩阵计算,推荐你用  NumPy 模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-9 11:58:18 | 显示全部楼层
我用的就是NumPy模块,其中涉及到了矩阵求逆,直接numpy.linalg.inv(Rmatrix) 进行求解的。

tempRB是一个8*1的矩阵,因此这个公式里边都是具体的数值从矩阵中提取出来后进行计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-9 11:59:38 | 显示全部楼层
SixPy 发表于 2016-7-9 11:22
矩阵计算,推荐你用  NumPy 模块

我用的就是NumPy模块,其中涉及到了矩阵求逆,直接numpy.linalg.inv(Rmatrix) 进行求解的。

tempRB是一个8*1的矩阵,因此这个公式里边都是具体的数值从矩阵中提取出来后进行计算
ET是一个比较复杂的矩阵,是一个8*8矩阵,每个元素中有个7子单元,每个单元里是3*3矩阵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-9 16:34:35 | 显示全部楼层
自己解决了。我发现在定义tempRB的时候我用的是tempRB=numpy.transpose([0 for i in range(nx+ny-3)])这个时候将大改25846564.99999的一个数放进去的时候就除了上述问题。因此我重新定义tempRB

tempRB=[[0] for i in range(nx+ny-3)]

此时,在将tempRB[1][0]=25846564.99999
此时就不会出现问题了!谢谢大家的帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 14:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表