Прежде всего, пожалуйста, попробуйте выучить язык MarkDown, чтобы публиковать читаемые вопросы.Ваш первый вопрос содержал некоторую информацию, которая не отображалась из-за конфликтов с рендерингом StackOverflow MarkDown.
Во-вторых, постарайтесь, насколько это возможно, модулировать ваш код и использовать соглашение, которое я использовал, чтобы получить более читаемый код.Определите Фибоначчи, используя цикл for:
function y = fibonacci(N)
select N
case 0 then
y = 0;
case 1 then
y = 1;
else
y0 = 0;
y1 = 1;
y = 1;
for ii = 3:N do
y0 = y1;
y1 = y
y = y1 + y0;
end
end
endfunction
Тогда у вас есть два варианта:
A. определить вашу функцию в векторизованной форме:
function [g] = logf(n)
for ii = n do
g(ii) = log(fibonacci(ii)) / ii;
end
endfunction
учтите, что Scilab не передает матрицы / списки по функциям, и вы должны делать это самостоятельно.
Теперь вы можете строить с помощью:
n = 1:200;
plot(n, logf(n));
И результат будет следующим:

B. В качестве альтернативы вы можете отобразить или передать свою функцию через последовательность, используя feval
.Определите свою функцию в скалярной форме:
function [g] = logf(n)
g = log(fibonacci(n)) / n;
endfunction
, а затем нанесите на график:
n = 1:200;
plot(n, feval(n, logf));