フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

working on a bisection code and im pretty lost is it right so far?

2 ビュー (過去 30 日間)
adriana resendez
adriana resendez 2015 年 2 月 25 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
function [xr ea iter] = bisect(func,x1, xu, es, maxit)
if func(x1)*func(xu)>=0, error('no sign change'); end
xold = x1;
for iter=1:maxit
xr = ???
test = func(x1)*func(xr)
ea = abs((xr-xold)/xr)*100;
if test<0, xu = xr;
elseif test>0; ???;
else ea = 0;
end
  2 件のコメント
John D'Errico
John D'Errico 2015 年 2 月 25 日
Please use the code formatting button "{} Code" when you post code. Your code is unreadable as it is.
John D'Errico
John D'Errico 2015 年 2 月 25 日
編集済み: John D'Errico 2015 年 2 月 25 日
Having fixed your code (I'll do that once) to make it readable...
Is it right? Of course not.
You have assignments like
xr = ???
and
???;
That last was a good one, though not truly valid syntax. I'll admit that when I stop writing code to take a rest, I usually add a random line like
jw56ywykmej
This way I cannot miss finding it when I resume work later on. At the very least, mlint will tell me about it.
Your code is missing end statements. Lots of other issues I could pick at. For example, why use a for loop instead of a while loop? A for loop forces the code to run for maxit iterations. What if it has converged before then? Yes, this last is a minor issue that relates to efficiency, instead of does the code work.
Essentially, you are going in a reasonable direction, but you are not there yet. So why not finish writing it? Try it out? Learn to debug your code, so learn to use the debugger.

回答 (0 件)

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by