0

У меня есть два массива;Пользовательская модель полифита в Matlab

R = [r0, r1, r2, ..., r999] 

Z = [z0, z1, z2, ..., z999] 

Я хочу применить полифит к приведенному выше, где функция R (z). Мне нужен полином как x^2 + x^4 + x^6 + x^8

В excel функция тренда не допускает только четных степеней, поэтому я попытался написать это в Matlab, но я не могу понять, как настроить полифит так, чтобы он использовал только мощности, как описано выше.

Любые предложения? благодаря

+0

пожалуйста, напишите код, который вы пытались –

ответ

1

Вы можете использовать Least Squares Method из линейной алгебры для решения этой проблемы:

% 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(:)]); 
+0

@ramz ли это решить вашу проблему? – Skogsv