Error in the for loop or equality sign

2 ビュー (過去 30 日間)
Faisal Baig
Faisal Baig 2019 年 5 月 21 日
回答済み: Jos (10584) 2019 年 5 月 21 日
Hello,
I am using following code to check the discharges in the pipelines connecting three reservoirs. But the Loop is not working I guess. Could anybody tell the error?
Ela=100;
Elb=70;
Elc=30;
ka=1563.085;
kb=38.10;
kc=12729.55;
x=70:0.01:75;
for i=1:x;
Qa=sqrt((Ela-x)/ka);
Qb=sqrt((x-Elb)/kb);
Qc=sqrt((x-Elc)/kc);
if Qb+Qc==Qa
disp(Qa)
disp(Qb)
disp(Qc)
break
else
continue
end
end
  5 件のコメント
Walter Roberson
Walter Roberson 2019 年 5 月 21 日
Please answer my question about the expected values of i
Faisal Baig
Faisal Baig 2019 年 5 月 21 日
I can use
'for x= 70:0.01:75'
instead of
x= 70:0.01:75;
for i = 1:x;
So basically, I just want to give range of my values to find Qa, Qb and Qc. i doesn't matter

サインインしてコメントする。

回答 (1 件)

Jos (10584)
Jos (10584) 2019 年 5 月 21 日
Welcome to the world of floating point arithmetic, where
if 0.1+0.2 == 0.3
disp('0.1+0.2 equals 0.3')
else
disp('0.1+0.2 does not equal 0.3')
end
More info here:
You want to check with a tolerance:
if abs(Qa+Qb-Qc) < 1e-10
disp('Qa+Qb practically equals Qc')
end

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by