heute ist der Geburtstag von
Pierre-Simon Laplace (28.03.1749 - 05.03.1827)


Auf das Thema antworten  [ 10 Beiträge ] 
Alte Matlab Tests Programmiert 
Autor Nachricht

Registriert: 10/2010
Beiträge: 22
Mit Zitat antworten
Beitrag Alte Matlab Tests Programmiert
Sommersemester 2008

A1:

Code:
function no = euklidnorm( y )
n=length(y);
s=0;
for i=1:n
    s=s+y(i)*y(i);
end
no=sqrt(s);
end


A2:

Code:
function [ no ] = euklidnorm2( y )
no=sqrt(sum(y.*y));
end


A3:

Code:
function [ lam,Mx ] = poweriteration( A,x0,tau )
Mx=x0;
lam=x0'*A*x0;
test=1;
i=1;
while test
Mx=[Mx,A*Mx(:,i)/norm(A*Mx(:,i))];
lam=[lam,Mx(:,i+1)'*A*Mx(:,i+1)];
i=i+1;
if abs(lam(i)<=tau)
    tautest=tau;
else
    tautest=tau*abs(lam(i));
end
test=(norm(A*Mx(:,i)-lam(i)*Mx(:,i))>tau) * (abs(lam(i-1)-lam(i))>tautest);
end
end


A4:

Code:
function [ lam1,x0 ] = poweriteration2( A,x0,tau )
zw=A*x0;
lam0=x0'*zw;
test=1;
i=1;
while test
x0=zw/norm(zw);
zw=A*x0;
lam1=x0'*zw;
i=i+1;
if abs(lam1<=tau)
    tautest=tau;
else
    tautest=tau*abs(lam1);
end
test=(norm(zw-lam1*x0)>tau) * (abs(lam0-lam1)>tautest);
lam0=lam1;
end
end


So 23-01-2011 16:06:47
Diesen Beitrag melden
Profil

Registriert: 10/2010
Beiträge: 22
Mit Zitat antworten
Beitrag Alte Matlab Tests Programmiert
Wintersemester 2008/2009

A1:

Code:
function [L,U] = computeLU(A)
n=length(A);
L=eye(n);
U=zeros(n);
U(1,:)=A(1,:);
for i=1:n-1
    for j=i+1:n
        L(j,i)=(1/U(i,i))*(A(j,i)-L(j,1:i-1)*U(1:i-1,i));
        U(i+1,j)=A(i+1,j)-L(i+1,1:i)*U(1:i,j);
    end
end
end


A2:

Code:
function [ L,U ] = computeLU2( A )
n=length(A);
L=eye(n);
U=zeros(n);
U(1,:)=A(1,:);
for i=1:n-1
        L(i+1:n,i)=(1/U(i,i))*(A(i+1:n,i)-L(i+1:n,1:i-1)*U(1:i-1,i));
        U(i+1,i+1:n)=A(i+1,i+1:n)-L(i+1,1:i)*U(1:i,i+1:n);
end
end


A3:

Code:
function [ x ] = solveU( U,b )
n=length(b);
x=zeros(n,1);
for i=n:-1:1
    x(i)=(b(i)-U(i,i+1:n)*x(i+1:n))/U(i,i);
end
end


A4:

Code:
function [ x ] = solveL( L,b )
n=length(b);
x=zeros(n,1);
for i=1:n
    x(i)=b(i)-L(i,1:i-1)*x(1:i-1);
end
end


So 23-01-2011 16:09:19
Diesen Beitrag melden
Profil

Registriert: 10/2010
Beiträge: 22
Mit Zitat antworten
Beitrag Alte Matlab Tests Programmiert
Wintersemester 2009/2010

A2:

Code:
function pt = neville( h,y,t )
n=length(h);
ma=zeros(n);
ma(:,1)=y;
for i=2:n
    ma(1:n+1-i,i)=((t-h(1:n+1-i)).*ma(2:n+2-i,i-1)-(t-h(i:n)).*ma(1:n+1-i,i-1))./(h(i:n)-h(1:n+1-i));
end
pt=ma(1,n);
end


A3:

Code:
function pt = neville2( h,y,t )
n=length(h);
for i=2:n
    y(1:n+1-i)=((t-h(1:n+1-i)).*y(2:(n+2-i))-(t-h(i:n)).*y(1:n+1-i))./(h(i:n)-h(1:n+1-i));
end
pt=y(1);
end


A4:

Code:
function y = differenciate( f,x,h0,eps )
fx=f(x);
y(1)=(f(x+h0)-fx)/h0;
h0=h0/2;
y(2)=(f(x+h0)-fx)/h0;
while abs(y(1)-y(2))>eps*max(abs(y(1)),abs(y(2)))
    y(1)=y(2);
    h0=h0/2;
    y(2)=(f(x+h0)-fx)/h0;
end
y=y(2);
end


A5:

Code:
function phi = richardson( f,x,h0,eps )
fx=f(x);
h=h0;
y(1)=(f(x+h0)-fx)/h0;
nev(1)=neville(h,y,0);
h=[h,h(length(h))/2];
y(2)=(f(x+h(2))-fx)/h(2);
nev(2)=neville(h,y,0);
i=2;
while abs(nev(2)-nev(1))>eps*max(abs(nev(1)),abs(nev(2)))
    i=i+1;
    h=[h,h(length(h))/2];
    y(i)=(f(x+h(i))-fx)/h(i);
    nev(1)=nev(2);
    nev(2)=neville(h',y',0);
end
phi=nev(2);
end


So 23-01-2011 16:13:56
Diesen Beitrag melden
Profil

Registriert: 10/2010
Beiträge: 22
Mit Zitat antworten
Beitrag Alte Matlab Tests Programmiert
Sommersemester 2010

A1:

Code:
function I = quadrature( f,a,b,n )
h=(b-a)/n;
sum=0;
for i=1:n-1
    sum=sum+f(a+i*h);
end
I=(h/2)*(f(a)+2*sum+f(b));
end


A2:

Code:
function I = quadrature2( f,a,b,n )
h=(b-a)/n;
I=(h/2)*(f(a)+2*sum(f(a+(1:n-1)*h))+f(b));
end


A3:

Code:
function I = integrate( f,a,b,eps )
h=(b-a);
In=((h/2)*(f(a)+f(b)));
n=2;
h=h/2;
In2=In/2+h*sum(f(a+(1:2:n-1)*h));
while abs(In2-In)>eps*max(abs(In2),abs(In))
    In=In2;
    n=n*2;
    h=h/2;
    In2=In/2+h*sum(f(a+(1:2:n-1)*h));
end
I=In2;
end


A4:

Code:
function I = aitken( f,a,b,eps )
I=zeros(4,1);
for i=1:4
    n=2^(i-1);
    h=(b-a)/n;
    I(i)=((h/2)*(f(a)+2*sum(f(a+(1:n-1)*h))+f(b)));
end
y=I(1:2)-(I(2:3)-I(1:2)).^2./(I(3:4)-2.*I(2:3)+I(1:2));
I(2:3)=I(3:4);
while abs(y(2)-y(1))>eps*max(abs(y(1)),abs(y(2)))
    I(1:2)=I(2:3);
    n=n*2;
    h=h/2;
    I(3)=I(2)/2+h*sum(f(a+(1:2:n-1)*h));
    y(1)=y(2);
    y(2)=I(1)-(I(2)-I(1))^2/(I(3)-2*I(2)+I(1));
end
I=y(2);
end


So 23-01-2011 16:15:51
Diesen Beitrag melden
Profil

Registriert: 10/2007
Beiträge: 25 + 7
Mit Zitat antworten
Beitrag Re: Alte Matlab Tests Programmiert
märz 2010 bsp 1 (8pkt)

Code:
function p = evalpoly(a,x)
n = length(a);
y = 1;
sum = a(1);
%a0 + a1x + a2x^2 + ...
for i = 2:n
y = y * x;
sum = sum + a(i)*y;
end
p = sum;
end


hat jemand vielleicht aufgabe 2, 3 und 4 richtig? vor allem rootpoly wäre sehr interessant.

bei 3. bin ich soweit gekommen:
Code:
function abl = derivatepoly(k, p)
if k < 0
disp('error');
return
elseif k == 0
abl = p;
elseif k > length(p)
abl = 0;
else
n = length(p);
abl = zeros(n-k,1);
tmp = prod(1:k);
for i = 1:n-k
abl(i) = p(k+1)*tmp;
for ... %ich komm einfach nicht dahinter wie ich k so aufsummieren soll, dass ich das faktorielle richtig hinbekomm.
tmp =
end
end


bzw 2.

Code:
function p = evalpoly3(a,x)
n = length(a);
p = sum(a(1:n)*x.^(0:n-1));
end


aber das liefert

Code:
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> evalpoly3 at 3
p = sum(a(1:n)*x.^(0:n-1));


weiß irgendwer was damit nicht stimmt?


Di 14-06-2011 10:34:51
Diesen Beitrag melden
Profil
Czechnology
Benutzeravatar

Registriert: 10/2007
Beiträge: 29 + 498
Wohnort: Pfeilheim, Wien8
Studium: (alt) Bachelor Computerwissenschaften
Mit Zitat antworten
Beitrag 
Bitte benutzt die [ code][/code] tags wenn ihr code eingibt:

[ code]Hello World![/ code] :arrow:
Code:
Hello World!


Hab eure Posts editiert.

_________________
Bild


Di 14-06-2011 11:26:10
Diesen Beitrag melden
Profil ICQ YIM Website besuchen

Registriert: 10/2007
Beiträge: 25 + 7
Mit Zitat antworten
Beitrag Re: Alte Matlab Tests Programmiert
Bs4) 24.Jun.2010 bzw. Bsp4) 4.Okt.2010

Code:
function I = aitken2(f,a,b,eps)
N = 2;
h = (b-a)/N;
I1 = (h/2)*(f(a)+f(b));
N = 4;
h = h/2;
I2 = (h/2)*(f(a)+2*f(a + h)+f(b));
N = 8;
h = h/2;
I3 = (h/2)*(f(a)+2*sum(f(a + (1:2)*h))+f(b));

y1 = I1 - (((I2 - I1)^2)/(I3-2*I2+I1));

while 1
    N = N*2;
    h = h/2;
    I1 = I2;
    I2 = I3;
    I3 =(h/2)*(f(a)+2*sum(f(a +(1:N-1)*h))+f(b));
    y2 = I1 - (((I2 - I1)^2)/(I3-2*I2+I1));
   
    if abs(y2-y1)<=eps*max(abs(y1), abs(22))
        break
    end
    y1 = y2;
end
I = I2;
end


Zuletzt geändert von Sahin am Do 16-06-2011 10:38:14, insgesamt 3-mal geändert.



Do 16-06-2011 09:47:22
Diesen Beitrag melden
Profil

Registriert: 10/2007
Beiträge: 25 + 7
Mit Zitat antworten
Beitrag Re: Alte Matlab Tests Programmiert
Bsp3) 24.Jun.2010 integrate

Code:
function I = integrate(f,a,b,eps)
N = 1;
h = b-a;
I1 = (h/2)*(f(a)+f(b));
N = 2;
h = h/2;
I2 = (h/2)*(f(a)+2*f(a+h)+f(b));
while 1
    N = N*2;
    h = h/2;
    I1 = I2;
    I2 = (h/2)*(f(a)+2*sum(f(a+(1:N-1)*h))+f(b));
   
    if abs(I2-I1)<=eps*max(abs(I2),abs(I1))
        break
    end
end
I = I2;
end


Do 16-06-2011 10:23:11
Diesen Beitrag melden
Profil

Registriert: 10/2007
Beiträge: 25 + 7
Mit Zitat antworten
Beitrag Re: Alte Matlab Tests Programmiert
Bsp1) 21.Jan.2010 (mit schleifen)

Code:
function [L,U] = computeLU(A)
n = size(A,1);
L = eye(n);
U = zeros(n);

for i =1:n
    for k = 1:n
        if k>=i
            sum = 0;
            for j = 1:i-1
                sum = sum + L(i,j)*U(j,k);
            end
            U(i,k)=A(i,k)-sum;
        else
            sum = 0;
            for j = 1:i-1
                sum = sum + L(i,j)*U(j,k);
            end
            L(i,k)=(1/U(k,k))*(A(i,k)-sum);
        end
    end
end
end


Bsp 4) mit Vektorarithmetik schleifen eliminiert

Code:
function [L,U] = computeLU2(A)
n = size(A,1);
L = eye(n);
U = zeros(n,n);

for i = 1:n
    for k = 1:n
        if k >= i
            U(i,k) = A(i,k)-sum([L(i,[1:i-1])*U([1:i-1],k)]);
        else
            L(i,k)=(1/U(k,k))*(A(i,k)-sum([L(i,[1:i-1])*U([1:i-1],k)]));
        end
    end
end
end


Do 16-06-2011 11:54:47
Diesen Beitrag melden
Profil
Benutzeravatar

Registriert: 10/2009
Beiträge: 25 + 7
Mit Zitat antworten
Beitrag 
Ich hätte eine Frage bzgl Nachtest WS 10/11: Bei Bsp 2 wo wir den Grad n eines Polynoms bestimmen müssen.

kann man das nicht einfacht mit n=length(p) ? ermitteln?


Do 16-06-2011 12:31:14
Diesen Beitrag melden
Profil
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Auf das Thema antworten   [ 10 Beiträge ] 


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst neue Themen in diesem Forum erstellen.
Du darfst Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB © phpBB Group.  |  Designed by STSoftware for PTF  |  © Czechnology 2007 - 2024  |  Deutsche Übersetzung durch phpBB.de