为什么matlab和python对同一个数学问题给出不同的答案



在python中,我有一个等式:

coef = 3*dyalo /(dxalo*dxalo) - (2*ya1lo+ya1hi)/dxalo

其中dyalo、dxalo、ya1lo、ya1hi都是变量

在matlab中,我有一个应该与相同的方程

coef = 3.d0*dyalo/(dxalo*dxalo) - (2.d0*ya1lo+ya1hi)/dxalo;

具有相同的变量名。在调用每个变量之前,但在两个程序中都被赋值之后,我已经打印了每个变量,并且每个变量在两个软件中都有相同的值。

我的代码给出了大约大3倍的python答案。

编辑:matlab代码给出了正确的答案,只是想知道为什么python不匹配。

变量值为dyalo:7.2e-4,dxalo:0.0062,ya1lo:-.1165,ya1hi:-.1165matlab输出为.002,python输出为5.99e-3

复制自matlab代码:

disp(dyalo); disp(dxalo); disp(ya1lo); disp(ya1hi);
coef(3,i)= (3.d0*dyalo/(dxalo*dxalo) - (2.d0*ya1lo+ya1hi)/dxalo);
disp(coef(3,1))

从matlab命令窗口复制:

-7.2189e-04
0.0062
-0.1165
-0.1165
0.0020

我不确定这是否是问题所在,但我在您的matlab代码中看到,您的方程中的两项都有.d0。我个人并不熟悉这种语法,但这可能是Matlab给你一个不同答案的原因吗?编辑:这不是问题所在。也许python运行的是数值逼近方法?

最新更新