gpt4 book ai didi

python - f 在 MATLAB 代码中似乎总是正数,但在我的 Python 代码中,f 也得到负值

转载 作者:太空宇宙 更新时间:2023-11-04 01:41:07 24 4
gpt4 key购买 nike

如何转换 following MATLAB代码到 Python? Here is my solution , 但它并不完全产生相同的结果。例如,f 在 MATLAB 代码中似乎总是正数,但在我的 Python 代码中,f 也得到负值。

关于如何修复程序有什么想法吗?

我主要关心这些:
MATLAB:

    for k = 1 : nx  
j = k+2;

python :

for k in range(1,nx+1):  
j = k+2

MATLAB:

    [V,D] = eig(A, B);  
DD = diag(D);
keep_idxs = find( ~isinf(DD) );
D = diag( DD(keep_idxs) );
V = V(:, keep_idxs);
[lambda, idx] = min(diag(D));
f = V(:,idx);

python :

w,vr = scipy.linalg.decomp.eig(A,B)  
w = w.real
vr = vr.real
w = w[2:-1-2]
lambda_ = w.min()
idx = w.argmin()
f = vr[:,idx]

MATLAB:

    f = f(3:end-2);  
[nf, nf_idx] = max(abs(f)); % L_infty norm
n2 = f(nf_idx); % normalize sign away, too
f = f ./ n2;

python :

f = f[2:-1-1]  
nf = max(np.absolute(f))
nf_idx = np.absolute(f).argmax()
nf_idx = np.ma.argmax(f)
n2 = f[nf_idx]
f = f/n2

MATLAB:

    xx = -kappa:h:kappa;  

python :

xx = np.arange(-kappa, kappa+h, h)  

它们是等价的吗?如果是,那么为什么它们不产生完全相同的结果?

最佳答案

我不知道 matlab,但是对于 python 代码

for k in range(1,nx+1):  
j = k+2

相同
j = nx+2

这不是您的主要问题,但令人担忧。

关于python - f 在 MATLAB 代码中似乎总是正数,但在我的 Python 代码中,f 也得到负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4779522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com