Problem with for loop

3 ビュー (過去 30 日間)
Alvaro García
Alvaro García 2015 年 5 月 27 日
コメント済み: Alvaro García 2015 年 5 月 28 日
areaneeded=3.75*100.1/100;
%disp(areaneeded) %area needed for a 0.1% error
a=1;
b=2;
for n=1:100;
h=(b-a)/n;
x=a:h:b;
y=x.^3;
ya=a.^3;
yb=b.^3;
area = h/2*(ya+yb+2*(sum(y)-ya-yb));
%disp(area)
tol=1e-12;
if abs(areaneeded-area)<tol
disp(n)
break
end
end
%
In this code i'm trying to find out the number of strips necessary to get an error of 0.1% with the trapezium rule. by cross multiplication i get the area i need to get with the trapezium rule, and then with the for loop i try to run n a hundred times (n=1, n=2, n=3...) and when the result from the trapezium rule is equal to the areaneeded display n. But i don't get any answer and i don't know how to solve it. Some help would be appreciate. Thanks in advance.
  2 件のコメント
per isakson
per isakson 2015 年 5 月 27 日
編集済み: per isakson 2015 年 5 月 27 日
Here your code runs without throwing any error. What error do you get?
Alvaro García
Alvaro García 2015 年 5 月 28 日
There was some kind of typing mistake on my code, now i dont get error but still i dont get any answers. Thanks in advance.

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

採用された回答

Roger Stafford
Roger Stafford 2015 年 5 月 27 日
You have interpreted the phrase "get an error of 0.01%" far too literally. What is clearly meant is to find the smallest n such that the error is LESS than .01 percent of the correct amount. That means that you should write
areaneeded = 3.75; % The correct amount
....
tol = 3.75*.0001; % This is .01 percent of the correct amount
....
if abs(areaneeded-area) < tol
break;
As your code stands, the value n = 44 gets too much error and the next value n = 45 gets too little error to satisfy the tol = 1e-12 inequality which is a very tight requirement. Your code will never break.
  1 件のコメント
Alvaro García
Alvaro García 2015 年 5 月 28 日
Thanks, i didnt notice that. Thanks a lot!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with MuPAD についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by