Почему эта функция Matlab не делит? - PullRequest
1 голос
/ 02 февраля 2012

Функция ниже возвращает значение для mu, которое всегда равно «result» вместо результата деления. Почему я скучаю по разделу, чтобы работать должным образом?

 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

Код для функции, если он помогает, это:

 function result = func1(c, k)

 exp = 2^k;

 result = c^exp;

1 Ответ

5 голосов
/ 02 февраля 2012

Нет ошибок. mu всегда должно быть равно result, потому что

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

result^2/result = result 
...