황금비 연속 분수에 대한 MATLAB 코드
-
20-12-2019 - |
문제
저는 몇 개의 용어 m을 계산하는 Matlab 함수를 작성하려고 합니다. n 자리의 정확도에 도달하려면 황금 분수가 필요합니다.지금까지의 내용은 다음과 같습니다. 하지만 계속해서 0의 출력이 표시됩니다.
phi = (1+sqrt(5))/2;
p=1;
p=[1+1/p];
LoopCounter = 0;
while (phi-p)>10^(-n)
p=[1+1/p];
LoopCounter = LoopCounter + 1;
end
m=LoopCounter;
m
정수론을 공부하거나 이제 막 Matlab을 배우기 시작하는 분들이 흔히 하는 질문인 것 같아요.어떤 충고?감사해요!
해결책
그만큼 while
조건에 누락된 항목이 있습니다. abs
.그것은해야한다
while abs(phi-p)>10^(-n)
코드를 그대로 사용하면 초기 값은 p
(즉 2)는 다음보다 큽니다. phi
, 그래서 phi-p
부정적이며 while
루프가 입력되지 않습니다.그렇기 때문에 당신은 얻는다 m
동일 0
.
제휴하지 않습니다 StackOverflow