% Tehtävä 4.
% interpoloidaan ellipsiä x^2 + 2y^2 = 3 splinien avulla.
function y = teht4()

t = linspace(0,2*pi);
hold off;

[xs, ys] = ellipsi(t);
plot(xs,ys);
grid on;
hold on;

% valitaan n pistettä, joiden mukaan interpoloida
% ensimmäinen on 0, viimeinen on 2pi.
n = 8;
otanta = linspace(0, 2*pi, n);
[x, y] = ellipsi(otanta);
plot(x,y, '*');

% splinit x:n ja y:n suhteen.
% Matlabin oma arvaus toimii ihan hyvin. Alkuarvoilla (y:n suhteen) 1 ja 1
% saadaan hieman paranneltu versio.
Sx = spline(otanta, [x], t);
Sy = spline(otanta, [1 y 1], t);

% näin saatu parametriesitys saadaan suoraan ruudulle plotin avulla.
plot(Sx, Sy, 'r');

y = 0;

% ellipsimme parametriesityksessä, t välillä 0..2pi
% ellipsin sivujen pituudet määrätään ratkaisemalla yhtälöt arvoilla
% x = 0, y = 0.
function [x,y] = ellipsi(t)
x = sqrt(3) * cos(t);
y = sqrt(3/2) * sin(t);