Решение уравнений методами Простой итерации и методом Зейделя программным способом. 3лаба. Отчет По дисциплине Вычислительная математика Лабораторная работа 3
Скачать 419.19 Kb.
|
Метод Зейделя Приведем к виду: x1=0.2-0.1x2+0.6x3 x2=0.583+0.42x1-0.33x3 x3=0.125+0.38x1+0.25x2 N=1 x1=0.2 - 0 • (-0.1) - 0 • 0.6=0.2 x2=0.583 - 0.2 • 0.417 - 0 • (-0.333)=0.5 x3=0.125 - 0.2 • 0.375 - 0.5 • 0.25=-0.075 N=2 x1=0.2 - 0.5 • (-0.1) - (-0.075) • 0.6=0.295 x2=0.583 - 0.295 • 0.417 - (-0.075) • (-0.333)=0.435 x3=0.125 - 0.295 • 0.375 - 0.435 • 0.25=-0.0945 Решение метода Зейделя при помощи программы Module Module1 Sub Main() Dim n, i, k As Integer Console.WriteLine("Решение систем линейных уравнений") Console.WriteLine("Метод Зейделя") Console.Write("Число уравнений=") n = Console.ReadLine() Dim a(n, n), e, d, f, c, b(n), x(n), y(n), z As Double Console.Write("Погрешность=") e = Console.ReadLine() For i = 1 To n For j = 1 To n Console.Write("a({0},{1})=", i, j) a(i, j) = Console.ReadLine() If j = n Then Console.Write("b({0})=", i) b(i) = Console.ReadLine() End If Next Next k = 1 For i = 1 To n x(i) = b(i) / a(i, i) Next 1: d = 0 For i = 1 To n z = 0 For j = 1 To n z = z + a(i, j) * x(j) Next y(i) = x(i) - (z - b(i)) / a(i, i) c = Math.Abs(y(i) - x(i)) If c > d Then d = c End If x(i) = y(i) Next If d <= e Then GoTo 3 End If If k = 1 Then GoTo 2 End If If d >= f Then GoTo 4 End If 2: f = d k = k + 1 GoTo 1 3: For i = 1 To n Console.WriteLine("x({0})={1}", i, x(i)) Next Console.Write("Число итераций={0}", k) GoTo 5 4: Console.Write("Не сходиться") 5: Console.ReadLine() End Sub End Module Решение в программе метода Зейделя |