help with for loop

Hello everyone,
I got these two equation. They represent the depth.
The first one is the first depth measured which represents the first value of (Di-1) in the generalized equation below.
I need the code to generate Di until it reaches the condition.
I typed this code buti don't know if it is right as it doesn't fit the calculations i make myself.
Thanks.
% This script represents the Analytical gas lift design
Pks = input('Enter surface Kick off pressure');
dPkm = input('Enter kick off pressure margin');
Phf = input('Enter Wellhead Pressure');
Gs = input('Enter Static Gradient') ;
Pcs = input('Enter surface casing pressure');
dPcm = input('Enter casing pressure margin');
Phfd = input('Enter Wellhead desired Pressure');
Gfd = input('Enter desired flowing Gradient') ;
D = (Pks - dPkm - Phf)/(Gs-(Pks - dPkm)/40000);
D=Di;
for Di=1:10
Di = (Pcs - dPcm - Phfd+(Gs-Gfd)*Di)/(Gs-(Pcs - dPcm)/40000);
if Di > 5000;
break
end
end

3 件のコメント

Walter Roberson
Walter Roberson 2018 年 11 月 23 日
no you use Di as the for loop variable but you also compute it in the loop . you should use different variables
Seif Kazamel
Seif Kazamel 2018 年 11 月 23 日
Error in Analytical (line 14)
D = Di;
i changed it to i= 1:10
it gave me the error above
Walter Roberson
Walter Roberson 2018 年 11 月 24 日
you have not defined Di at that point

回答 (1 件)

Daniel Vela
Daniel Vela 2018 年 11 月 24 日

0 投票

Hello, please take a look at this code, it might help you fix what you need. Be aware that it might be wise to use a while loop if you want the program to calculate your value more than a determined number of times until it reaches your condition.
userinput1=input('enter value 1');
userinput2=input('enter value 2');
aMinusOne=userinput1+userinput2 %I define my starting value for a(i-1) through formula (use your formula here)
for i=1:10 % The loop will calculate a 10 times and then exit if condition is not.
a=aMinusOne+5; % the formula takes a(i-1) to calculate the current value of a
if a>150 %if condition is met, the loop ends and prints some nice message.
'the condition was reached'
break
end
aMinusOne=a;% we redifine A(i-1) with the most recently calculated value for A for next iteration.
end

この質問は閉じられています。

タグ

質問済み:

2018 年 11 月 23 日

閉鎖済み:

2021 年 8 月 20 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by