Пользовательская модель 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(:)]);
Другие вопросы по тегам