0

Ich habe zwei Arrays;Benutzerdefinierte Polyfit-Modell in Matlab

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

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

mag ich polyfit die oben aufzubringen, wobei die Funktion R (z). Ich brauche das Polynom zu sein x^2 + x^4 + x^6 + x^8

In Excel, erlaubt die Trend-Funktion nicht für nur gerade Kräfte, also habe ich versucht, dies in Matlab zu schreiben, aber ich kann nicht herausfinden, wie man Polyfit so anpassen kann, dass es nur die oben beschriebenen Potenzen verwendet.

Irgendwelche Vorschläge? Dank

+0

bitte posten Sie den Code –

Antwort

1

Sie können die Least Squares Method aus der linearen Algebra, dies zu lösen:

% 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 versucht haben Wurde Ihr Problem lösen? – Skogsv