0
我是MatLab的新手,我正在嘗試編寫一個簡單的閃存計算代碼,但是我收到了上述錯誤。我想知道你能否幫助我。我不確定錯誤在問什麼。試圖訪問nv(2.8);索引必須是一個正整數或邏輯
Zi = [0.2, 0.1, 0.1, 0.2, 0.2, 0.2];
pvi = [190, 72.2 51.6, 20.44, 15.57, 4.956];
Ki = [3.8, 1.444, 1.032, 0.4088, 0.3114, 0.09912];
A = 0;
B = 0;
for i = 1:length(Zi)
A = A + Zi(i)*(Ki(i)-1);
B = B + Zi(i)*((1/Ki(i))-1);
end
nv0= A/(A+B);
% Display an error message if 0<nv<1
if nv0 > 1 || nv0 < 0 || nv0 ==0
error('nv guess is incorrect')
end
% Step 2 - Solving Equation 5 - 16 for nv Using Newton-Raphson Method
nv = nv0;
nv0 = nv + .01; % Is this for the first gues abs dev?
itermax = 200;
fnkd = 0;
fnk = 0;
while abs(nv0 - nv) > tol & iter < itermax
iter = iter + 1;
nv0 = nv;
for i= 1:length(Zi)
fnk = fnk + ((Zi(i) * (Ki(i)-1))/(nv(Ki(i)-1)+1));
fnkd = fnkd +(-1*(Zi(i)*(Ki(i)-1)^2)/(nv(Ki(i)-1)+1)^2);
end
if fnkd ~= 0
nv = nv0 - fnk/fnkd;
else
nv = nv0 + 0.01;
end
end
nv
這是我發現了錯誤:在FlashCal誤差(線74)FNK = FNK +((字(I)*(KI(I)-1))/(NV(KI(ⅰ )-1)+1));
其中: FNK =西格馬(ⅰ)紫(KI-1)/ NV(KI-1)+1 fnkd = - 西格馬(ⅰ)紫(KI-1)^ 2 /(NV(KI- 1)+1)^ 2
非常感謝