Materiały do Laboratorium Informatyki Rok akademicki: 2006/07
Semestr: letni
MATLAB cz. 5 Regresja nieliniowa
Jednym z rodzajów regresji jest regresja dowolną funkcją. Rozpatrzmy następujący przykład
dopasowania wielomianu do punktów pomiarowych:
xp=[1 2 3 4 5];
yp=[22 11 7.3 5.5 4.5];
x=1:0.1:5;
a=polyfit(xp,yp,2);
y=polyval(a,x);
plot(xp,yp,'o',x,y,'r');
title(sprintf('f(x)=%3.2f x^2 %3.2f x+ %3.2f',a(1),a(2),a(3)));
f(x)=1.56 x2 -13.44 x+ 33.16
22
20
18
16
14
12
10
8
6
4
1 1.5 2 2.5 3 3.5 4 4.5 5
Aatwo sprawdzić, że zwiększanie stopnia wielomianu nie będzie dobrym wyjściem:
Trzeci rząd: Czwarty rząd:
22 24
22
20
20
18
18
16
16
14
14
12
12
10
10
8
8
6
6
4 4
1 1.5 2 2.5 3 3.5 4 4.5 5 1 1.5 2 2.5 3 3.5 4 4.5 5
Jakkolwiek dla czwartego rzędu wielomianu wydawać by się mogło, że wielomian dobrze
aproksymuje te dane, ale dzieje się tak tylko dlatego, że wielomian czwartego rzędu zawsze
może dopasować się do pięciu punktów pomiarowych.
W tym przypadku funkcją która dobrze aproksymowała by dane punkty jest funkcja
hiperboliczna (1/x). Wykonanie następujących instrukcji:
figure(2);
funA=inline('p(1)./x','p','x');
p0=[1];
p=nlinfit(xp,yp,funA,p0);
y=funA(p,x);
Opracowali: dr inż. Witold Nocoń, dr inż. Dariusz Choiński
Materiały do Laboratorium Informatyki Rok akademicki: 2006/07
Semestr: letni
plot(xp,yp,'o',x,y,'r');
title(sprintf('f(x)=%3.2f x^-^1',p(1)));
spowoduje wyświetlenie następującego wykresu (funkcja nlinfit może być nie dostępna we
wszystkich wersjach MATLAB a):
f(x)=22.01 x-1
24
22
20
18
16
14
12
10
8
6
4
1 1.5 2 2.5 3 3.5 4 4.5 5
Widzimy wiec, że funkcja ta posiada tylko jeden parametr, a znacznie lepiej aproksymuje
dane punkty pomiarowe.
Przeanalizujmy ten skrypt:
funA=inline('p(1)./x','p','x'); - tworzymy funkcję w której x jest zmienną
p(1);
niezależną, p jest wektorem parametrów, zaś funkcja jest postaci f (x)=
x
p=nlinfit(xp,yp,funA,p0); - funkcja dokonuje nieliniowej regresji szukając
najlepszej funkcji funA dopasowującej się do xp i yp. p0 jest warunkiem początkowym dla
szukanej wartości parametru funkcji.
Pozostałe polecenia są już oczywiste.
Opracowali: dr inż. Witold Nocoń, dr inż. Dariusz Choiński
Wyszukiwarka
Podobne podstrony:
Tutorial MATLAB 3Tutorial MATLABTutorial MATLABTutorial MATLAB 1Tutorial MATLABTutorial MATLAB 2Tutorial MATLABTutorial MATLABTutorial MATLABTutorial MATLABArtificial Neural Networks The Tutorial With MATLABmatlab tutorium1Matlab Polski tutorialmatlab tutorium2Matlab tutorial GUIMATLAB cw SkryptySIMULINK MATLAB to VHDL Routewięcej podobnych podstron