function Aufgabe40(fall) % Approximationstheorie, WS 2007/08 % Programmierbeispiel zu Aufgabe 40, Blatt 14 % (benötigt newtonpoly.m, greville.m, bspval.m, divdiff.m) % % Aufruf: Aufgabe40(fall) % fall = 1: r=3, Knoten {0,0,0,1,1,1} % fall = 2: r=4, Knoten {0,0,0,0,1,1,1,1} % fall = 3: r=3, äquidistante Verteilung % fall = 4: r=4, äquidistante Verteilung % fall = 5: r=3, zufällige Verteilung % fall = 6: r=4, zufällige Verteilung % fall = 7: durchläuft alle Fälle if fall < 1 | fall > 7 error('Inputvariable muss aus {1,...,7} sein') end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fall 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if fall == 1 | fall == 7 clc fprintf('Fall 1: r=3, Knoten {0,0,0,1,1,1} \n \n'); fprintf('Greville-Abszissen \n '); g1 = greville([0 0 0 1 1 1],3) fprintf('Kollokationsmatrix und Inverse: \n'); A1=bspval([0 0 0 1 1 1],[eye(3)],g1) inv_A1= inv(A1) if fall == 1 xx = 0:.01:1; for k = 1:3 p(k,:) = newtonpoly(g1,A1(k,:),xx); end plot(xx,p) end Norm_invA1 = norm(inv_A1,inf) pause end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fall 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if fall == 2 | fall == 7 clc fprintf('Fall 2: r=4, Knoten {0,0,0,0,1,1,1,1} \n \n'); fprintf('Greville-Abszissen \n '); g2 = greville([0 0 0 0 1 1 1 1],4) fprintf('Kollokationsmatrix und Inverse: \n'); A2=bspval([0 0 0 0 1 1 1 1],[eye(4)],g2) inv_A2= inv(A2) if fall == 2 xx = 0:.01:1; for k = 1:4 p(k,:) = newtonpoly(g2,A2(k,:),xx); end figure plot(xx,p) end Norm_invA2 = norm(inv_A2,inf) pause end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fall 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if fall == 3 | fall == 7 clc fprintf('Fall 3: r=3, äquidistante Verteilung \n \n'); fprintf('Stützstellenvektor \n'); a3 = [0:.1:1] fprintf('Greville-Abszissen \n '); g3 = greville(a3,3) fprintf('Kollokationsmatrix und Inverse: \n'); A3=bspval(a3,[eye(8)],g3) inv_A3= inv(A3) Norm_invA3 = norm(inv_A3,inf) pause end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fall 4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if fall == 4 | fall == 7 clc fprintf('Fall 4: r=4, äquidistante Verteilung \n \n'); fprintf('Stützstellenvektor \n'); a4 = [0:.1:1] fprintf('Greville-Abszissen \n '); g4 = greville(a4,4) fprintf('Kollokationsmatrix und Inverse: \n'); A4=bspval(a4,[eye(7)],g4) inv_A4= inv(A4) Norm_invA4 = norm(inv_A4,inf) pause end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fall 5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if fall == 5 | fall == 7 clc fprintf('Fall 5: r=3, Knoten zufällig verteilt \n \n'); fprintf('Stützstellenvektor \n'); a5 = sort(rand(1,10)) fprintf('Greville-Abszissen \n '); g5 = greville(a5,3) fprintf('Kollokationsmatrix und Inverse: \n'); A5=bspval(a5,[eye(7)],g5) inv_A5= inv(A5) Norm_invA5 = norm(inv_A5,inf) pause end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fall 6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if fall == 6 | fall == 7 clc fprintf('Fall 6: r=4, Knoten zufällig verteilt \n \n'); fprintf('Stützstellenvektor \n'); a6 = sort(rand(1,12)) fprintf('Greville-Abszissen \n '); g6 = greville(a6,4) fprintf('Kollokationsmatrix und Inverse: \n'); A6=bspval(a6,[eye(8)],g6) inv_A6= inv(A6) Norm_invA1 = norm(inv_A6,inf) end