How create a interaction method to re-calculate a equation if a condition is not satisfied

2 views (last 30 days)
I have a equation where i need to input a value and calculate some equations with this value.
In the end, i need to check if this value is ok.
If it's not, I need to input a new value and calculate the equation again with this new value.
Somebody can help me?
I tried this way.
I need to input "Tin" and calculate "Tw". In the end, i need check if the average between Tw and "Tb" in less than 10%. If it's not i neet to input a new value for "Tave".
clear
close all
Tin=input('Input T');
D=5;
t=0.362;
E=2.9e07;
ws=17.9148297590378;
R=1448.88;
alfa=1.96;
h=R*(1-(cos(alfa/2)));
I=pi*(D-t)*(D-t)*(D-t)*t/8;
teta=19.45;
L=495.73;
conv=teta*pi/180;
mis=0.3;
mil=0.05;
DRAG= 12*pi*D*L*mil;
Tb=8.89e4;
G=Tin;
for i=1:100
G(i)=Tin(i);
J=sqrt(E*I/G(i));
U=12*L/J;
X=3*L-(J/2)*tanh(U/2);
Y=18*L*L-J*J*(1-(1/cos(U/2)));
N=(12*G(i)*h-(ws/12)*cos(teta)*Y)/X;
frictc=N*mis;
ter=ws*L*sin(conv);
deltac=2*frictc+DRAG-ter;
Tw=deltac+Tb;
Tave(i)=(Tw+Tb)/2;
if Tave(i)>G(i)+G(i)*0.1
G(i)=Tave(i);
elseif Tave2(i)<G(i)-G(i)*0.1
G(i)=Tave2(i);
else
display(Tave2(i));
end
end
  2 Comments
sixwwwwww
sixwwwwww on 9 Dec 2013
Edited: sixwwwwww on 9 Dec 2013
you have to enter new value for Tave or Tin? and also what is meaning of it " i need check if the average between Tw and "Tb" in less than 10%" less than 10% of which values ?
Gabriel
Gabriel on 9 Dec 2013
I'm sorry
New value for "Tin" if "Tave" is greater than 10% of "Tin".
Now the sentence is correct

Sign in to comment.

Accepted Answer

sixwwwwww
sixwwwwww on 9 Dec 2013
Edited: sixwwwwww on 9 Dec 2013
try this:
Tin=input('Input T');
D=5;
t=0.362;
E=2.9e07;
ws=17.9148297590378;
R=1448.88;
alfa=1.96;
h=R*(1-(cos(alfa/2)));
I=pi*(D-t)*(D-t)*(D-t)*t/8;
teta=19.45;
L=495.73;
conv=teta*pi/180;
mis=0.3;
mil=0.05;
DRAG= 12*pi*D*L*mil;
Tb=8.89e4;
G(1) = Tin;
for i=1:100
J=sqrt(E*I/G(i));
U=12*L/J;
X=3*L-(J/2)*tanh(U/2);
Y=18*L*L-J*J*(1-(1/cos(U/2)));
N=(12*G(i)*h-(ws/12)*cos(teta)*Y)/X;
frictc=N*mis;
ter=ws*L*sin(conv);
deltac=2*frictc+DRAG-ter;
Tw=deltac+Tb;
Tave(i)=(Tw+Tb)/2;
if Tave(i) >= Tin * 0.1
Tave(i) = input('Enter new value of Tave:');
end
G(i + 1) = Tave(i);
end
display(Tave(i))
  6 Comments
Gabriel
Gabriel on 10 Dec 2013
I'm sorry the newbie ask, but in this programa the value of Tw is being changing every time that Tave changes, isn't it?

Sign in to comment.

More Answers (2)

Walter Roberson
Walter Roberson on 9 Dec 2013
need_to_continue = true;
while need_to_continue
Tin = input('Temperature In');
....
need_to_continue = (Tw + Tb)/2 > Tb/10; %average is more than 10% ?
end

Gabriel
Gabriel on 10 Dec 2013
Thanks so much..
It's running perfectly now...

Categories

Find more on Programming in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!