I can`t solwe gauss elimination method

1 visualización (últimos 30 días)
alex us
alex us el 6 de Oct. de 2021
Editada: Jan el 6 de Oct. de 2021
function [ ret ] = EliminacjaGaussaWSEI()
format short
clc
clear
[A,b,n]=macierz;
m= wprzod (A,b,n);
m= eliminacja (m,n);
x= odwrotne(m,n);
disp(x)
endfunction
function [ A,b,n] = macierz ()
A=[ -3 6 -1 -2; -3 3 -3 1; -1.5 4.5 -2.5 -0.5; 0 1.5 -0.5 -3.5];
n=4;
b=[10; 16; 13; 17];
endfunction
function [ a] = eliminacja (a,n)
for k = 1: n-1
for i = k+1 : n
m(i,k)= a(i,k)/a(k,k);
for j = k:n+1
a(i,j)= a(i,j)-(m(i,k)*a(k,j));
end
end
end
endfunction
function [ A] = wprzod (A,b,n)
for c = 1 : n
A(c,n+1)=b(c);
end
endfunction
function [ x ] = odwrotne (m,n)
x(n)= m(n, n+1)/m(n,n);
for i=n-1:-1:1
acum = 0;
for p = i+1:n
acum = acum + (m(i,p)*x(p));
end
x(i)= (m(i, n + 1) - acum)/m(i, i);
end
endfunction

Respuesta aceptada

Jan
Jan el 6 de Oct. de 2021
Editada: Jan el 6 de Oct. de 2021
I've simplified the code and converted it from Octave to Matlab:
A = [ -3 6 -1 -2; -3 3 -3 1; -1.5 4.5 -2.5 -0.5; 0 1.5 -0.5 -3.5];
n = 4;
b = [10; 16; 13; 17];
m = [A, b];
m = eliminacja(m, n);
x = odwrotne(m, n);
disp(x)
-2.2963 -2.2407 -6.8889 -4.8333
A \ b
ans = 4×1
-2.2963 -2.2407 -6.8889 -4.8333
function a = eliminacja(a,n)
for k = 1:n-1
for i = k+1:n
m(i,k) = a(i,k)/a(k,k);
for j = k:n+1
a(i,j) = a(i,j)-(m(i,k)*a(k,j));
end
end
end
end
function x = odwrotne (m,n)
x(n) = m(n, n+1) / m(n,n);
for i = n-1:-1:1
acum = 0;
for p = i+1:n
acum = acum + (m(i, p) * x(p));
end
x(i)= (m(i, n + 1) - acum)/m(i, i);
end
end
It runs fine and replies the same output as A\b. So what do you consider as a problem? Maybe the missing definition of the output "rec"? Then replace:
function [ ret ] = EliminacjaGaussaWSEI()
by
function x = EliminacjaGaussaWSEI()

Más respuestas (0)

Categorías

Más información sobre Numerical Integration and Differential Equations en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by