Пользовательская модель polyfit в Matlab
У меня есть два массива;
R = [r0, r1, r2, ..., r999]
Z = [z0, z1, z2, ..., z999]
Я хочу применить polyfit к вышесказанному, где функция R(z). Мне нужно, чтобы многочлен был х ^2+ х ^4+ х ^6+ х ^8
В Excel функция тренда не учитывает только четные полномочия, поэтому я попытался написать это в Matlab, но я не могу понять, как настроить polyfit так, чтобы он использовал только четные степени, как описано выше.
Какие-либо предложения? Спасибо
1 ответ
Вы можете использовать метод наименьших квадратов из линейной алгебры, чтобы решить это:
% The Data
R = [r0, r1, r2, ..., r999]'; % Note the apostrophe
Z = [z0, z1, z2, ..., z999]';
% Create Vandermonde-ish matrix
X = [Z.^2 Z.^4 Z.^6 Z.^8];
% Solve equation system
a = X\R;
% Reshape and pad with zeros for the odd and 0th powers
p = [zeros(size(a)) a]';
pval = flip([0; p(:)]);