888888888888 88 88 88 88 ,d ,d88 88 88 88 888888 88 ,adPPYba, 88,dPPYba, MM88MMM 88 88 a8P_____88 88P' "8a 88 88 88 8PP""""""" 88 88 88 88 88 "8b, ,aa 88 88 88, 888 88 88 `"Ybbd8"' 88 88 "Y888 888 88 %Otetaan data helppokäyttöiseen muotoon load data-har8.mat a0=da0(1,:); b0=da0(2,:); a1=da1(1,:); b1=da1(2,:); a2=da2(1,:); b2=da2(2,:); %Piirretään dataa da0 vastaavia splinejä plot(a0,b0,'ko') %datapisteet hold on pp=spline(a0,b0); %Oletusarvoilla fnplt(pp) pp=spline(a0,[-100,b0,100]); %mielikuvituksellisilla derivaatan arvoilla fnplt(pp,'r') title('Harjoitus 8, tehtävä 1, da0') legend('pp=spline(a0,b0)','pp=spline(a0,[-100,b0,100])') %print -djpeg 'h8t1.jpg' %Tehdään sama muille datapisteille %Piirretään dataa da1 vastaavia splinejä plot(a1,b1,'ko') %datapisteet hold on pp=spline(a1,b1); %Oletusarvoilla fnplt(pp) pp=spline(a1,[0,b1,0]); %mielikuvituksellisilla derivaatan arvoilla fnplt(pp,'r') title('Harjoitus 8, tehtävä 1, da1') legend('pp=spline(a1,b1)','pp=spline(a1,[0,b1,0])') %print -djpeg 'h8t1b.jpg' %Piirretään dataa da2 vastaavia splinejä plot(a2,b2,'ko') %datapisteet hold on pp=spline(a2,b2); %Oletusarvoilla fnplt(pp) pp=spline(a2,[0,b2,0]); %mielikuvituksellisilla derivaatan arvoilla fnplt(pp,'r') pp=spline(a2,[0,b2,1]); %mielikuvituksellisilla derivaatan arvoilla fnplt(pp,'g') pp=spline(a2,[0,b2,2]); %mielikuvituksellisilla derivaatan arvoilla fnplt(pp,'m') pp=spline(a2,[0,b2,3]); %mielikuvituksellisilla derivaatan arvoilla fnplt(pp,'c') title('Harjoitus 8, tehtävä 1, da2') legend('pp=spline(a2,b2)','pp=spline(a2,[0,b2,0])','pp=spline(a2,[0,b2,1])','pp=spline(a2,[0,b2,2])','pp=spline(a2,[0,b2,3])') print -djpeg 'h8t1c.jpg' 888888888888 88 ad888888b, 88 88 ,d d8" "88 88 88 88 a8P 88 ,adPPYba, 88,dPPYba, MM88MMM ,d8P" 88 a8P_____88 88P' "8a 88 a8P" 88 8PP""""""" 88 88 88 a8P' 88 "8b, ,aa 88 88 88, 888 d8" 88 `"Ybbd8"' 88 88 "Y888 888 88888888888 888888888888 88 ad888888b, 88 88 ,d d8" "88 88 88 88 a8P 88 ,adPPYba, 88,dPPYba, MM88MMM aad8" 88 a8P_____88 88P' "8a 88 ""Y8, 88 8PP""""""" 88 88 88 "8b 88 "8b, ,aa 88 88 88, 888 Y8, a88 88 `"Ybbd8"' 88 88 "Y888 888 "Y888888P' Ks. Mikaelin ratkaisut 888888888888 88 ,d8 88 88 ,d ,d888 88 88 88 ,d8" 88 88 ,adPPYba, 88,dPPYba, MM88MMM ,d8" 88 88 a8P_____88 88P' "8a 88 ,d8" 88 88 8PP""""""" 88 88 88 8888888888888 88 "8b, ,aa 88 88 88, 888 88 88 `"Ybbd8"' 88 88 "Y888 888 88 %Komennoilla a=sqrt(3); b=sqrt(3/2); A=[-a,0;0,-b;a,0;0,b;-a,0]'; save ellipsidata.mat %saadaan ellipsidata.mat-datatiedostoon matriisin A, jolle %A' %ans = % -1.7321 0 % 0 -1.2247 % 1.7321 0 % 0 1.2247 % -1.7321 0 %Nähdään, että A:n pisteet ovat ellipsin sisälläolevan neljäkkään kärkipisteet, %kun piirretään kuva komennolla plot(A(1,:),A(2,:)) %Ellipsi voidaan piirtää komennolla t=linspace(0,2*pi); x=sqrt(3)*cos(t); y=sqrt(3/2)*sin(t); hold on plot(x,y,'k') %Tehdään splini ja piirretään siitä kuva t=linspace(0,1,5); a=A(1,:); b=A(2,:); xx=spline(t,a); yy=spline(t,b); T=linspace(0,1); X=fnval(xx,T); Y=fnval(yy,T); plot(X,Y,'r') legend('neljäkäs','ellipsi','splini') title('Harjoitus 8, tehtävä 4, neljäkäs, ellipsi ja splini') %print -djpeg 'h8t4b.jpg' %Joku menee pieleen ja spliniellipsistä tulee lievästi "kananmunan muotoinen". %Jos csape toimii, voidaan piirtää splini ehdolla 'periodic' t=linspace(0,1,5); a=A(1,:); b=A(2,:); xx=csape(t,a,'periodic'); yy=csape(t,b,'periodic'); T=linspace(0,1); X=fnval(xx,T); Y=fnval(yy,T); plot(X,Y,'g') %Nyt splinistä tulee symmetrinen x- ja y-akselien suhteen eikä "kananmunaa". 888888888888 88 8888888888 88 88 ,d 88 88 88 88 88 ____ 88 ,adPPYba, 88,dPPYba, MM88MMM 88a8PPPP8b, 88 a8P_____88 88P' "8a 88 PP" `8b 88 8PP""""""" 88 88 88 d8 88 "8b, ,aa 88 88 88, 888 Y8a a8P 88 `"Ybbd8"' 88 88 "Y888 888 "Y88888P" Tehtävänannon käyrä on kuvassa bezierkuva.PNG. Käyttämällä komentoa bezier(ginput) ja ampumalla datapisteiksi kuvan h8t5.jpg murtoviivan kulmapisteet saadaan kuvan h8t5.jpg Bézier-käyrä, jossa on silmukka. Käyrä ei näytä kovin paljoa tehtävänannon käyrältä, mutta siinäkin on silmukka.