Returning last value of while loop

I need to return the last integral of the while loop, the one that is small enough to satisfy the inequality, so that the function value (q) is equal to H with the last value of k. How can I do that?
function q = myimproperintegral(f,a,b,tol)
syms x;
k = 2;
H=0;
before = int(f(x),(a+(b-a)/k),b);
after = int(f(x),(a + (b-a)/(k+1)),b);
while before-after > tol
k=k+1;
H=int(f(x),(a+(b-a)/(k+1)),b);
end
q=double(H)
end

回答 (1 件)

Jos (10584)
Jos (10584) 2015 年 3 月 10 日

0 投票

You can return multiple outputs with functions
function [q, k] = myimproperintegral(f,a,b,tol)
...

1 件のコメント

chazz
chazz 2015 年 3 月 10 日
I only need one output, but the code above doesn't work for what I'm trying to do. All I need is for q to equal H with the last value of k...

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

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2015 年 3 月 10 日

コメント済み:

2015 年 3 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by