Date 14.5.99
Student 45834H, Mikko Hämäläinen
Problem Set 1
Problem 1
File: h1t1.m
% Diskretisoidaan ja luodaan ohjeen mukaisesti diagonaalit
n=3;
B=4*diag(ones(1,n))-diag(ones(1,n-1),1)-diag(ones(1,n-1),-1);
O=zeros(n,n);
mI=-eye(n,n);
A=[B mI O;mI B O;O mI B];
A
% Kirjoitin tämän nyt kuitenkin m-fileksi, mutta eipä saiitä
% kummoinen tullut. Matlabin helpeistä on toki apua komentoja
% tutkittaessa...
Problem 2
File: h1t2.m
% Diskretisointi kuten tehtävässä 1
m=5;n=m-1;
B=4*diag(ones(1,n))-diag(ones(1,n-1),1)-diag(ones(1,n-1),-1);
O=zeros(n);
mI=diag(ones(n,1));
A=[B mI O O;mI B mI O;O mI B mI;O O mI B];
% Asennetaan RHS...
vasen=[0,20,40,60,80,0];
yla=[50,20,10,0];
ala=zeros(1,4);
oikea=vasen;
T=[vasen(2:n-1)' zeros(n-2,n-2) oikea(2:n-1)'];
T=[ala;T;yla];
T(1,1)=T(1,1)+vasen(1);
T(1,n)=T(1,n)+oikea(1);
T(n,1)=T(n,1)+vasen(n);
T(n,n)=T(n,n)+oikea(n);
% Tulostetaan T
T=T'
% Muotoillaan ratkaisumatriisi uudelleen...
RHS=T(:);
rat=inv(A)*RHS;
ratkmat=reshape(rat,n,n);
% ...ja lisätään reunalämpötilat.
ratkmat=ratkmat'
ratkmat=[ala;ratkmat;yla];
ratkmat=[vasen' ratkmat oikea']
% Visualisointi...
surf(ratkmat)
xlabel('x')
ylabel('y')
zlabel('Lämpötila')
Problem 3
File: h1t3.m
% Käytetään valmiita työkaluja:
aste = 4;
alapoly = polyfit([1 2 3 4], [0 0 0 0], aste);
oikeapoly = polyfit([1 2 3 4], [20 40 60 80], aste);
ylapoly = polyfit([1 2 3 4], [50 20 10 0], aste);
vasenpoly = polyfit([1 2 3 4], [20 40 60 80], aste);
% Lasketaan ratkaisupolynomien arvot pisteissä X
X = 0:0.5:5;
alaY = polyval(alapoly, X);
oikeaY = polyval(oikeapoly, X);
ylaY = polyval(ylapoly, X);
vasenY = polyval(vasenpoly, X);
pinta = lapsolve1(alaY, oikeaY, ylaY, vasenY);
surf(pinta)
% lapsolve1.m on lainattu malliratkaisuista...
Problem 4
Problem 4 on Maple worksheet
And here is the code for a Matlab picture (in file named h1t4.m)
x = 0:0.5:12;
y = x;
[X, Y] = meshgrid(x,y);
ratkaisu = zeros(size(X));
for k=0:50
n = 2*k + 1;
ratkaisu = ratkaisu + sinh(n*pi*X/12) .* sin(n*pi*Y/12) ./ (n *sinh(n*pi));
end
ratkaisu = ratkaisu * 400 / pi;
surf(x,y,ratkaisu)