次の方程式を解く必要があります。
old_val = 0.4*U_Z/(log(5/new_val));
どこ
new_val = 0.11*1.5e-5./old_val;
new_val と old_val を計算するには、new_val と old_val を計算し、new_val が前の new_val の 0.001% の場合と同様に new_val の真の値を取るループを作成する必要があります。
これを行うためにwhileループを使用することについては考えていますが、これはうまくいくと思います。ただし、while ループを開始する方法については、少し混乱しています。
while abs((new_val(i) - val_prev(i))) > 0.000001
old_val = 0.4*W(i)/(log(5/new_val));
dummy = new_val(i);
new_val = 0.11*1.5e-5./old_val;
val_prev(i) = dummy;
end
また
while abs((new_val(i) - val_prev(i))) / abs(val_prev(i)) > 0.000001
old_val = 0.4*W(i)/(log(5/new_val));
dummy = new_val(i);
new_val = 0.11*1.5e-5./old_val;
val_prev(i) = dummy;
end
どこ
val_prev = new_val*1.1;
これは反復を開始するために使用されます。while ループを使用して、new_val と val_prev が互いに 0.001% 以内になるまでループを実行し続けます。