function []=blatt6_2() %Man erhaelt die Diskretisierungen durch elementare Integration der Basishutfunktionen, das Bild des i-ten Basisvektors ist dann genau die i-te Spalte der Matrix. n=200; h=1/(n-1); x=linspace(0,1,n); A=ones(n,n); A=tril(A); A=A-1/2*eye(n,n); A(:,1)=1/2; A(1,1)=0; A=h*A; %Die diskretierte Adjungierte ist nicht gleich der Adjungierten der Diskretierten. Aadj=ones(n,n); Aadj=triu(Aadj); Aadj=Aadj-1/2*eye(n,n); Aadj(:,n)=1/2; Aadj(n,n)=0; Aadj=h*Aadj; %Testen mit Af=g g=x.^4-x.^2; f=4*x.^3-2*x; %Kontaminierte Daten %delta=[0.05, 0.01, 0.005, 0.001, 0.0005, 0.0001, 0.00005, 0.00001]; delta=[0.01,0.001,0.0001,0.00001,0.00001]; l=length(delta); gdelta=zeros(n,l); fpseudo=zeros(n,l); ftikh=zeros(n,l); k=zeros(l,1); ffinit=zeros(n,l); for i=1:l k(i)=ceil(sqrt(delta(i))/h); end for i = 1:l r=(rand(n,1)-1/2)*delta(i); gdelta(:,i)= g' + r; fpseudo(:,i) = pinv(A)*gdelta(:,i); %Pseudoinverse ftikh(:,i) = inv(Aadj*A + delta(i)*eye(n,n))*Aadj*gdelta(:,i); %Tikhonov % ftikh(:,i) = inv(A'*A + delta(i)*eye(n,n))*A'*gdelta(:,i); %Tikhonov ffinit(1:n-k(i),i) = 1/(h*k(i))*(gdelta(1+k(i):end,i) - gdelta(1:end-k(i),i)); % ffinit(1:n-1,i) = 1/(h)*(gdelta(1+1:end,i) - gdelta(1:end-1,i)); end inv(Aadj*A+0.0000001*eye(n,n)) %finite Differenzen figure hold on plot(x,f) title('Tiknhonov') for i=1:l plot(x,ftikh(:,i)) end hold off figure hold on plot(x,f) title('Naiv invertiert') for i=1:l plot(x,fpseudo(:,i)) end hold off figure hold on plot(x,f) title('finite Differenzen') for i=1:l plot(x(1:end-k(i)),ffinit(1:end-k(i),i)) end end