can you solve this problem
이전 댓글 표시
I solved this problem but the file didn't run, the codes in the editor are:
function [s,ea,i]=SqRoot(a,eps,maxit)
i = 0;
s = a/2;
ea = 100;
while(1)
sold = s;
s= (s+a/s)/2;
i = i+1;
if s ~= 0, ea=abs((s - sold)/s)*100; end
if ea <= eps | i>= maxit, break, end
end
댓글 수: 5
jgg
2016년 1월 26일
You need to post the actual error message. As it stands, I see several errors in your code:
- if ea eps | i= maxit : this is not Matlab syntax, there's no comparison of the values
- Your function doesn't terminate with an end block
- You are using , instead of ; to terminate lines
Additionally, there's no reason to use a while loop here when you can use a for loop instead.
Image Analyst
2016년 1월 26일
I formatted the code for him. Read this http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup
You're using | in the if instead of | | (two bars).
How did you call it? What are a, eps, and maxit. By the way, eps is a built in variable so you should not use that as the name of your own variable.
Have you tried stepping through it with the debugger? That's what everybody does in cases like this - so should you.
abdulaziz almutairi
2016년 1월 27일
편집: abdulaziz almutairi
2016년 1월 27일
Star Strider
2016년 1월 27일
‘Did you see the attached photo?’
No, because no photo was attached.
Walter Roberson
2016년 1월 27일
a_arg = rand();
eps_arg = randn() / 10^8;
maxit_arg = randi([10,500]);
[s_ans, ea_ans, i_ans] = Student(a_arg, eps_arg, maxit_arg)
답변 (1개)
Star Strider
2016년 1월 26일
Your code runs for me, and produces the correct result:
a = 50; % Argument
maxit = 100; % Argument
i = 0;
s = a/2;
ea = 100;
while(1)
sold = s;
s= (s+a/s)/2;
i = i+1;
if s ~= 0, ea=abs((s - sold)/s)*100; end
if ea <= eps || i>= maxit, break, end
end
What problems are you having with it?
카테고리
도움말 센터 및 File Exchange에서 Networks에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!