Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 16

Вещественное переполнение (Вычисление корней уравнения методом Гаусса)

29.12.2013, 12:30. Показов 1016. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть программа, вычисляющая корни уравнений (метод Гаусса, LU-разложения, Зейделя). Так вот, при вводе некоторых значений появляется эта ошибка.
Функция, в которой ошибка:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
function Zeid(s: integer; a: Tmas1; b: Tmas2): Tmas2; //Метод Зейделя
const
        ee = 0.001; //Погрешность метода
        m = 1000;  //Максимальное число итераций
var
        i,j,k: integer;
        tmp: real;
        bool: boolean;
        l: integer;
        x: Tmas2;
        dd: real;
begin
        //Устранение нулевых диагональных элементов
        repeat
                bool:= true;
                for k:= 0 to s-1 do
                begin
                        if a[k,k]=0 then
                        begin
                                bool:= false;
                                for i:= 0 to s-1 do
                                begin
                                        if a[i,i]<>0 then
                                                j:= i;
                                end;
 
 
                                for i:= 0 to s-1 do
                                begin
                                        tmp:= a[j,i];
                                        a[j,i]:= a[k,i];
                                        a[k,i]:= tmp;
                                end;
                                tmp:= b[j];
                                b[j]:= b[k];
                                b[k]:= tmp;
                        end;
                end;
        until bool;
 
        for i:= 0 to s-1 do
                x[i]:= 0;
 
        l:= 0;
        k:= 1;
        repeat
                dd:= 0;
                for i:= 0 to s-1 do
                begin
                        tmp:= 0;
                        for j:= 0 to i-1 do
                        begin
                                tmp:= tmp + a[i,j]*x[j];   //Ссылается сюда
                        end;
                        for j:= i+1 to s-1 do
                        begin
                                tmp:= tmp + a[i,j]*x[j];
                        end;
                        tmp:= (b[i]-tmp)/a[i,i];
                        if Abs(tmp - x[i]) > dd then
                        begin
                                dd:= Abs(tmp - x[i]);
                        end;
                        x[i]:= tmp;
                end;
                if dd < ee then
                begin
                        l:= 1;
                end
                else
                begin
                        if k=m then
                        begin
                                l:= 2;
                        end
                        else
                        begin
                                k:= k+1;
                        end;
                end;
        until l<>0;
 
        if l=1 then
        begin
                Zeid:= x;
        end
        else
        begin
                for i:= 0 to s-1 do
                begin
                        x[i]:= 0;
                end;
                Zeid:= x;
        end;
end;
Пример появления ошибки.
Матрица а:
1 7 9
4 0 6
9 4 3
и матрицы b: 7 4 3
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.12.2013, 12:30
Ответы с готовыми решениями:

Вычисление корней нелинейного уравнения методом хорд
Puporev, я походу своими просьбами тебя заколебал) у тебя есть готовое решение любого нелинейного уравнения, но уже методом хорд. Просто...

Вычисление корней нелинейного уравнения методом дихотомии
Задание. Определить корни уравнения x^2 - e^(-x^2) = 0 Важное замечание: решить естественно методом деления отрезков пополам ...

Вычисление корней алгебраического уравнения методом Ньютона-Рафсона - комментарии к коду
ВЫЧИСЛЕНИЕ КОРНЕЙ АЛГЕБРАИЧЕСКОГО УРАВНЕНИЯ МЕТОДОМ НЬЮТОНА-РАФСОНА #include // Для printf #include #include // Для комплексной...

3
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 16
30.12.2013, 16:06  [ТС]
Можно удалять тему, разобрался.
0
31.12.2013, 00:52

Не по теме:

MrSmmiT, согласно правилу форума 4. 11. неплохо было бы описать, в чём именно Вы разобрались...

0
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 16
31.12.2013, 09:38  [ТС]
Разобрался с вещественным переполнением. Точно не знаю как
P.S. В тему прикол о программистах: Почему эта программа не работает?... Почему она заработала? Ну раз работает не буду трогать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.12.2013, 09:38
Помогаю со студенческими работами здесь

Нахождение корней уравнения методом итераций и методом половинного деления
Прошу вас помогите пожалуйста решить задачку по теме &quot; Нахождение корней уравнения &quot; двумя методами: метод итераций и метод...

Графическим методом выполнить локализацию корней уравнения и решить его методом хорд и касательных.
Привет=) Помогите плиз!) Задание: Графическим методом выполнить локализацию корней нелинейного уравнения и решить его. Вычислить значение...

Отделение корней заданного уравнения методом перебора и уточнения значений методом половинного деления
Составить программу для отделения корней заданного уравнения методом перебора и уточнения значений методом половинного деления. пример:...

Написать программу для нахождения корней системы уравнений методом Гаусса
Здравствуйте помогите пожалуйста Составить алгоритм и написать программу для нахождения корней системы уравнений методом...

Вычисление корней уравнения
Вычислите \frac{\left|ln%20x%20\right|%20{ln}^{2}%20x%20}{%20pi%20{e}^{x}%20+{x}^{4}}-\frac{1}{\sqrt{1+{x}^{2}}(sin(4,7x)+6/5)}для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru