2012-02-01 118 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

相关问题