Интересно, есть ли у кого-нибудь предложения по улучшению производительности, презентации и/или вывода следующего кода MATLAB?Предложения по улучшению кода MATLAB?
Я написал программу, чтобы аппроксимировать грех й с помощью частичной суммы
((-1)^n)*(x.^((2*n)+1))/(factorial((2*n)+1))
с использованием методов LS и SL. Для LS я вычислил и суммировал термины от самого большого слагаемого сначала до наименьшего срока последнего. Для SL я сделал калоризацию в обратном порядке.
Вот моя функция:
function ret = taylorsin(x,n)
ret = ((-1)^n)*(x.^((2*n)+1))/(factorial((2*n)+1));
end
и мой короткий код:
function ret = partialsum(x,n,log)
ret = 0;
if log == 1
for i = 0:1:n
ret = ret + taylorsin(x,i);
i=i+1;
end
elseif log == 0
for i = n:-1:0
ret = ret + taylorsin(x,i);
i = i+1;
end
end
end
Спасибо за любой вклад.
+1 Я бы векторизовал использование 'repmat' с' n' columnwise и 'x' rollise, а затем использовал' cumsum' columnwise –
@LuisMendo: я думаю, что 'repmat' не требуется; см. мое редактирование. –
В общем случае я думал, что 'x' будет вектором –