Approximating square root function using loops
이전 댓글 표시
Please help me solve this:
the "divide and average" method, an old-time method for approximating the square root of any positive number a, can be formulated as x=(x+a/x)/2. write a well-structured function to implement this alogrithm.
here is my first line:
function estSqrt= ApproxSqrt(a,tol)
a is the number whos square root i want to find
tol is the tolerance that must be greater than abs(xOld-xNew)/abs(xOld)
댓글 수: 5
Matt J
2019년 2월 6일
I think you mean
x=(x+a/x)/2
Char Jacobus
2019년 2월 6일
Matt J
2019년 2월 6일
Well, you have to write more than the first line of code in order to call it "help".
Char Jacobus
2019년 2월 6일
Matt J
2019년 2월 6일
I can't seem to make this work for negative inputs of a
Why would you need to?
답변 (1개)
AKARSH KUMAR
2020년 6월 24일
0 개 추천
function estSqrt= ApproxSqrt(a,tol)
if a<0
msg='Can't calculate square root of negative number';
error(msg);
else if a==0
estSqrt=0;
else
e = 1;
x = a/2;
estSqrt = 1;
while e > tol
xOld = x;
x = (x+a/x)/2;
e=abs((x - xOld)/x);
estSqrt = x;
if a < 0
a = abs(a);
estSqrt = x*1i;
end
end
end
end
카테고리
도움말 센터 및 File Exchange에서 Mathematics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!