Freemat - Vorwärtseinsetzen

Neue Frage »

CasioXX Auf diesen Beitrag antworten »
Freemat - Vorwärtseinsetzen
Meine Frage:
Hi,

kennt sich hier vielleicht jemand mit Freemat aus und kann mir bei folgender Aufgabe weiterhelfen?

Man soll einen zufällige n×n untere Dreiecksmatrix L sowie einen zufälligen Vektor b erstellen und dazu ein Programm zum Vorwärtseinsetzen schreiben.
Danach soll das erstellte Programm für verschiedene Werte von n getestet werden und die Lösung durch das Residuum Lx - b bzw. dessen Norm (z.B. die Maximumsnorm) überprüft werden.

Meine Ideen:
Bei mir sieht es so aus, aber leider kommt immer wieder Error.

n=input('n=')
M = rand(n);
L = tril(M);
b = rand(n,1);

x = zeros(n,1);
x(1) = b(1)/L(1,1);
for i=2:n
x(i) = (b(i)-L(i,1:i-1)*x(1:i-1))/L(i,i);
end;
x=x

v=norm(L*x-b,inf)

Kann mir jemand weiterhelfen?
Ulrich Ruhnau Auf diesen Beitrag antworten »
RE: Freemat - Vorwärtseinsetzen
Ich habe dein Progrämmchen leicht umgewandelt und in Matlab getestet. Es lief einwandfrei und mit kam heraus.

function [ x, v ] = drei( n )
%n=input('n=')
M = rand(n);
L = tril(M);
b = rand(n,1);

x = zeros(n,1);
x(1) = b(1)/L(1,1);
for i=2:n
x(i) = (b(i)-L(i,1:i-1)*x(1:i-1))/L(i,i);
end;
x=x;

v=norm(L*x-b,inf);
end

Aufruf mit
[x,v]=drei(5);
Dopap Auf diesen Beitrag antworten »
RE: Freemat - Vorwärtseinsetzen
Zitat:
Original von Ulrich Ruhnau
[...] kam heraus.


Auch wenn es lästig ist:

oder

code:
1:
[latex]v = 5.2736\text{E-16}[/latex]
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »