|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|
Решение системой линейных уравнений с одной переменной16.11.2018, 12:39. Показов 3377. Ответов 34
Метки нет (Все метки)
Подскажите как можно найти корни уравнения с одной переменной системой автоматически при этом так, чтобы система не создавала к примеру какую-нибудь временную "табличку-массив памяти" для уравнений типа y=kx+b, где будет она для начала принимать решение иксов и приписывать к нему ответ y. То есть так чтобы система не создавала к примеру временно одномерный массив? элементы которого будут являться матрицами 2*1, где он будет к каждому иксу приписывать значение y.
Вопрос у меня в том, как это прописать в коде так, чтобы это все происходило без использования и выделения памяти. У меня в моем случае это будет матрица, которая теоретически фактических границ по своим размерностям иметь не будет. Она уже будет приведена к треугольному виду (под главной диагональю будут уже нули). И мне нужно будет сначала решить самое нижнее уравнение с одной переменной. Потом заменить это найденное значение в уравнение выше....и т.д. Но мне нужно это желательно так сделать чтобы у меня система не создавала временных "таблиц-массивов памяти" с какой-то дозой переменных b11 b12 b13 b14 ... b1(n+1) b21 b22 b23 b24 ... b2(n+1) b31 b32 b33 b34 ... b3(n+1) ... bs1 bs2 bs3 bs4 ... bs(n+1)
0
|
|
| 16.11.2018, 12:39 | |
|
Ответы с готовыми решениями:
34
Решение уравнений с одной переменной Решение уравнений с одной переменной Решение уравнений с одной переменной |
|
Модератор
|
||
| 16.11.2018, 12:56 | ||
|
На самом деле делить процесс на треугольный вид и следующий за ним диагональный необязательно, их можно смело объединить. Добавлено через 4 минуты Можете посмотреть обсуждение здесь: Решение СЛУ с выбором главного элемента по столбцу (Python -> Pascal) Если используете расширенную матрицу и не нужно получать обратную, то код в циклах существенно упрощается до операций над единственной расширенной матрицей.
0
|
||
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|
| 16.11.2018, 13:00 [ТС] | |
|
bormant, Я уже создал словесную блок-схему
Кликните здесь для просмотра всего текста
1. Запрос системы на ввод значений S и N (они не обязательно должны быть равны);
2. Ввод S - количество уравнений в системе; 3. Ввод N - количество неизвестных переменных; 4. Формирование системой количества переменных n+1 (единица — это ввод того значения, чему равняется то или иное уравнение), то есть создание новых переменных (b11 b12 b13 b14 ... b1(n+1)), ввод которых система будет далее запрашивать; 5. Запрос системы на ввод последовательно в строку через пробел значений всех переменных, которые она ранее в п.4 сформировала (b11 b12 b13 b14 ... b1(n+1)). Количество запросов от системы на ввод значений будут соответствовать количеству уравнений S, например b11 b12 b13 b14 ... b1(n+1) b21 b22 b23 b24 ... b2(n+1) b31 b32 b33 b34 ... b3(n+1) ... bs1 bs2 bs3 bs4 ... bs(n+1) 6. Далее программа находит максимальный элемент из всех элементов первого столбца (индексы которых заканчиваются на 1 (из b11 b21 b31 ... bs1). И меняет это уравнение с максимальным этим элементом местами с первым уравнением (так чтобы оно стало на первое место). То есть фактически меняет местами первые индексы всем значениям между элементами первой строки и элементами строки, в которой имеется тот максимальный элемент в первом столбце. Если данное максимальное число уже находится в первой строке, то программа переходит к п.7 7. После обмена строк местами, программа домножает на требуемое число каждую нижележащюю строку так, чтобы все первые элементы этих строк стали равны первому элементу первой строки. Далее вычитает из всех строк (от 2 до S) первую строку, чтобы во всех этих строках первые члены стали равны 0. 8. Далее программа производит аналогичные итерации как в 6 и 7 пунктах с элементами второго столбца кроме первой строки. Находит строку с максимальным элементом, ставит эту строку на место той строки, которая по своему номеру соответствует номеру рассматриваемого столбца, после домножает все ниже находящиеся строки, и вычитает из всех строк (с 3 и до S) вторую строку. 9. Аналогичные итерации буду происходить до тех пор, пока в матрице в последней строке все числа не станут нулями кроме последних двух. То есть до тех пор, пока все числа, находящиеся ниже главной диагонали, не примут значение равное 0. Но я запнулся на дальнейшем решении.......ну допустим я уже привел по этой блок-схеме (см. выше) и как мне найти иксы.....но желательно без того, что указано в самом вопросе Добавлено через 2 минуты bormant, Короче что мне нужно сделать чтобы система мне смогла решить уравнение вида aX+b=c----------то есть уравнение с одной переменной
0
|
|
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
||
| 16.11.2018, 13:09 [ТС] | ||
|
bormant, У меня короче лаба: нужно сделать решение на паскале для СЛАУ методом Гаусса (обратным и прямым).
0
|
||
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
|
||||||
| 16.11.2018, 13:10 | ||||||
|
Если есть матрица, приведенная к треугольному виду(вместе со свободными членами), то нужно просто выполнить обратный ход
a-матрица коэффициентов b-массив свободных членов
1
|
||||||
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|
| 16.11.2018, 13:22 [ТС] | |
|
Puporev, Видимо я туплю щас.....а этот метод (гаусса) вообще применим к матрицам неквадратного вида. У меня вопрос касаемый главной диагонали автоматический всплывает....как она там формируется эта диагональ тогда??
0
|
|
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
|
|
| 16.11.2018, 13:26 | |
|
Вообще система с n неизвестными должна иметь n уравнений. Уравнение должно иметь n коэффициентов, те неизвестные которых нет в уравнении имеют коэффициент = 0.
2x1+x3=5-> 2x1+0x2+x3=5
0
|
|
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|
| 16.11.2018, 13:27 [ТС] | |
|
Puporev, все въехал - вопрос аннулирован ...ок спс
0
|
|
|
Модератор
|
||
| 16.11.2018, 13:44 | ||
![]() А система строится из n уравнений с n неизвестными: {a11x1 + ... a1nxn = b1 {... {an1x1 + ... annxn = bn Добавлено через 2 минуты А в методичке вам про обратный ход метода Гаусса забыли написать. Добавлено через 2 минуты А модификация Жордана хороша тем, что на прямой и обратный ход обработку матрицы делить не надо, обратный ход выполняется в той же матрице, в столбце свободных членов сразу получаем решение.
0
|
||
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|
| 16.11.2018, 13:58 [ТС] | |
|
bormant, Так вот я как раз и хочу для начала просто найти ответ на уравнение (см. пример ниже)
2 3 4 5 8 1 0 5 9 5 7 6 0 0 4 2 2 1 0 0 0 5 1 7 0 0 0 0 3 6 так вот я и хочу чтобы мне программа просто нашла сначала то что X5=2 Ну примерно как-то так: из 6 вычитается все то, что является свободными членами (без иксов), а потом делится на тот коэффициент которые стоит рядом с иксом (может быть это чуть чуть неправильно и не по-русски) Потом его подставила в 1*2 - то есть 4е уравнение уже стало однопеременным итд и по мере нахождения иксов осуществляла их вывод на экран
0
|
|
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
|
|
| 16.11.2018, 14:00 | |
|
Так я Вам это и написал.
0
|
|
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|
| 16.11.2018, 14:01 [ТС] | |
|
Puporev, ну вот я в это параллельно и въезжаю ......идет обработка предоставленной информации моим мозгом.....ожидание)))))
0
|
|
|
Модератор
|
|
| 16.11.2018, 14:30 | |
|
IПоследнюю строку разделим на элемент главной диагонали (3). Вычтем
из 4-й строки 5-ю, умноженную на 1; из 3-й строки 5-ю, умноженную на 2; из 2-й строки 5-ю, умноженную на 7; из 1-й строки 5-ю, умноженную на 8. От x5 избавились, проделаем то же самое с 4 по 1 строку. Получили в последнем столбце решения для каждого из x. Что-то это напоминает? Обратный ход по Гауссу? Да и с прямым просто один в один
0
|
|
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|
| 16.11.2018, 14:32 [ТС] | |
|
bormant, Идет обработка предоставленной информации мозгом ... Спасибо за предоставленную информацию...пожалуйста подождите)))
0
|
|
|
Модератор
|
|||||||||||
| 16.11.2018, 15:33 | |||||||||||
Сообщение было отмечено xamelione25 как решение
Решение
Если из Решение СЛУ с выбором главного элемента по столбцу (Python -> Pascal) выкинуть не относящееся к этой теме, всего-то и останется:
1
|
|||||||||||
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|||||||||||||
| 17.11.2018, 14:04 [ТС] | |||||||||||||
|
bormant, Объясни пожалуйста:
1. Объясни значение того что написано во второй строке кода И какую роль здесь выполняет
Здесь есть какая-та принципиальная разница в данной форме написания или нет? Или такое написание тоже тоже допустимо... или не желательно
0
|
|||||||||||||
|
Модератор
|
|||||||||||||
| 17.11.2018, 18:26 | |||||||||||||
Pascal type TFloat = Double; var TMatrix = array [1..n,1..n+1] of TFloat; ... function mGauss(var a: TMatrix): Boolean; var t: TFloat;
0
|
|||||||||||||
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
||
| 17.11.2018, 20:21 [ТС] | ||
|
bormant,
Добавлено через 1 час 22 минуты bormant, Я просто не пойму функциональной целесообразности в ней вообще....я ради интереса вообще проверял-тестировал эту прогу на матрице 3*3
0
|
||
|
Модератор
|
||
| 17.11.2018, 21:45 | ||
|
А смысл простой -- тема в общем разделе паскаля, но не в любом трансляторе паскаля есть динамические массивы, поддержанные на уровне языка. Поэтому код такой, который подходит для любых. Это не значит, то нельзя написать универсально реализацию динамического массива, но тогда за деревьями можно не увидеть леса. А в таком виде ничего лишнего -- только основная идея.
0
|
||
|
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
|
|
| 17.11.2018, 21:52 [ТС] | |
|
bormant, то есть ты его просто обобщил этот код (написал его в такоей форме)...чтобы он подходил под все версии паскалей??
0
|
|
| 17.11.2018, 21:52 | |
|
Помогаю со студенческими работами здесь
20
Программирование. Решение уравнений с одной переменной
Задать системой линейных уравнений подпространство
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|