Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
function [x, k] = gausseidel(A, b, tol, N, x0) precision = 1e-10; n = size(A,1); x = zeros(n, 1); xk = zeros(n, 1); tolerance = 0; x = x0; test = 0; for i = 1:n if abs(A(i,i)) < precision then error("Coefficient diagonaux trop petit.") end end for k = 1:N for i = 1:n sommeTermesPrec = A(i,1:i-1) * x(1:i-1) sommeTermesSuiv = A(i,i+1:n) * x(i+1:n) // Pour avoir une matrice nulle à la place d'une matrice vide // Sur Scilab 6.0+ if (sommeTermesPrec == []) then sommeTermesPrec = [0] end if (sommeTermesSuiv == []) then sommeTermesSuiv = [0] end xk = x; x(i) = (b(i) - sommeTermesPrec - sommeTermesSuiv) / A(i,i); end tolerance = norm(x - xk) / norm(x) if tolerance < tol then // On est rentré dans le test test = 1; break; end end if (test == 0) then error("Pas de convergence en Nmax itérations.") end endfunction
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)