문제

저는 몇 개의 용어 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top