2012-02-01 63 views
1

下面的函數返回mu的值,它總是等於「result」,而不是分割的結果。爲什麼我錯過了部門正常工作?這個matlab函數爲什麼不分?

for k = 0:10 
    result = func1(.95,k); 
    plusone = func1(.95,(k+1)); 
    fprintf('plusone = %f result = %f\n', plusone, result); 
    mu = double(plusone)/double(result); 
    fprintf('mu = %f\n', mu); 
end 

的FUNC的代碼,如果有幫助,就是:

function result = func1(c, k) 

exp = 2^k; 

result = c^exp; 

回答

5

沒有錯誤。 mu應始終等於result,因爲

plusone = c^(2^(k+1)) 
     = c^(2*(2^k)) 
     = (c^(2^k))^2 
     = result^2 

result^2/result = result 
+0

令人難以置信的是,我錯過了這一點。謝謝 – mathjacks 2012-02-02 02:37:59

+1

容易錯過錯誤,@flapjackery。請考慮接受答案,如果它解決了你的問題。乾杯。 – foglerit 2012-02-02 02:52:46