Предмет: Информатика, автор: petrovichzheny20

Написать программный код на C++ для решения линейного уравнения методом гауса
15,7х1+6,6х2+7,5х3+11,5х4=-2,4
8,8х1+6,7х2+5,5х3-4,5х4=5,6
6,3х1-5,7х2-23,4х3+6,6х4=7,7
14,3х1+8,7х2+15,7х3+5,8х4=23,4

Ответы

Автор ответа: pefbrute
1

#include <iostream>

#include <vector>

const double EPSILON = 1e-10; // Предел точности

void rowOperation(std::vector<std::vector<double>>& matrix, int row1, int row2, double multiplier) {

   int n = matrix[0].size();

   for (int i = 0; i < n; i++) {

       matrix[row1][i] -= multiplier * matrix[row2][i];

   }

}

void gaussElimination(std::vector<std::vector<double>>& matrix, std::vector<double>& solution) {

   int n = matrix.size();

   for (int i = 0; i < n; i++) {

       // Поиск строки с наибольшим элементом в текущем столбце

       int maxRow = i;

       for (int j = i + 1; j < n; j++) {

           if (std::abs(matrix[j][i]) > std::abs(matrix[maxRow][i])) {

               maxRow = j;

           }

       }

       

       // Перестановка строк

       if (maxRow != i) {

           std::swap(matrix[i], matrix[maxRow]);

       }

       

       // Проверка на нулевой коэффициент

       if (std::abs(matrix[i][i]) < EPSILON) {

           continue;

       }

       

       // Приведение матрицы к ступенчатому виду

       for (int j = i + 1; j < n; j++) {

           double multiplier = matrix[j][i] / matrix[i][i];

           rowOperation(matrix, j, i, multiplier);

       }

   }

   

   // Обратный ход

   for (int i = n - 1; i >= 0; i--) {

       if (std::abs(matrix[i][i]) < EPSILON) {

           continue;

       }

       

       double sum = 0.0;

       for (int j = i + 1; j < n; j++) {

           sum += matrix[i][j] * solution[j];

       }

       

       solution[i] = (matrix[i].back() - sum) / matrix[i][i];

   }

}

int main() {

   std::vector<std::vector<double>> matrix = {

       {15.7, 6.6, 7.5, 11.5, -2.4},

       {8.8, 6.7, 5.5, -4.5, 5.6},

       {6.3, -5.7, -23.4, 6.6, 7.7},

       {14.3, 8.7, 15.7, 5.8, 23.4}

   };

   

   int n = matrix.size();

   std::vector<double> solution(n, 0.0);

   

   gaussElimination(matrix, solution);

   

   std::cout << "Solution: ";

   for (int i = 0; i < n; i++) {

       std::cout << "x" << i + 1 << " = " << solution[i] << ", ";

   }

   

   return 0;

}


Объяснение:

   Мы используем метод Гаусса для решения системы линейных уравнений. Этот метод состоит из двух этапов: приведение матрицы коэффициентов к ступенчатому виду и обратный ход, чтобы найти значения переменных.

   Функция rowOperation выполняет операцию над строками матрицы, умножая одну строку на множитель и вычитая ее из другой строки.

   Функция gaussElimination приводит матрицу к ступенчатому виду, применяя элементарные преобразования над строками. Затем она выполняет обратный ход, чтобы найти значения переменных.

   В функции main мы определяем матрицу коэффициентов и вектор решений. Затем вызываем gaussElimination, чтобы найти решение системы.

   Результат выводится на экран в виде значений переменных x1, x2, x3, x4, соответственно.

Обратите внимание, что для решения системы линейных уравнений методом Гаусса необходимо проверить, что матрица коэффициентов является невырожденной (имеет ненулевой определитель). В противном случае, метод может не дать правильного решения или не работать вообще.

Интересные вопросы
Предмет: Українська мова, автор: DrAg40
Предмет: Қазақ тiлi, автор: BigFlower
Помогите решить тест по казахскому языку
Өздік етісті табыңыз.
Еден жуылды;
Асыл өзі киінді;
Досымен сырласты;
Сурет ілінді;
Тастан сарай салғызды.

Бұрынғы өткен шақта түрған сөзді көрсетіңіз.
Танып тұрмын;
Танысты;
Танысқан екен;
Таниды;
Танитынмын.

Етістіктің мақсатты келер шақ түрін көрсетіңіз.
Пісірді;
Сырласатын;
Демалып жатыр;
Ызаландырмақ;
Оқыса игі еді.

Етістіктің нақ осы шақ түрін көрсетіңіз.
Сөйлер.
Естіген.
Келмекші.
Ұғыпты.
Бара жатыр.

Бұйрық райдың 3-ші жағын табыңыз.
Жетсін;
Табыңдар;
Түсініңіздер;
Үйренгісі келеді;
Ұнатты.

Осы шақтағы етістікті табыңыз.
Рұқсат сұрауға дәті шыдамады.
Онын мақаласы жарыққа шықты.
Той болып жатқан еді.
Ол оқуға кірісті.
Көптеген жаңа бұйымдар өндірілуде.


Баяндауыш қызметіндегі етістікті табыңыз.
Ашынғанның тілі ащы;
Күрең ат-Бөжейдің қыс мінетін аты;
Содан бері осындамын;
Олжабек ойланып қалды;
Абайдың тілегі солай
.

Тұйық етістікті табыңыз.
Көрген;
Оқып;
Жуу;
Айтпақ;
Білгелі.

Үстеу дегеніміз не?
Іс-әрекет, қимылды білдіреді;
Қимылдың мезгілін, белгісін, себебін мақсатын білдіреді ;
Қимылға, іс-әрекетке еліктеуді білдіреді;
Заттың сапасын, көлемін білдіреді;
Сөз бен сөзді байланыстырады.

Мезгіл үстеуін көрсетіңіз.
Бүрсігүні аттанды;
Ілгері жүрді;
Қаннен – қаперсіз ұйқтады;
Қыруар жұмыс істедік;
Өте үлкен екен.

Мекен үстеуді көрсетіңіз.
Әрең-әрен бара жатты;
Алға қадам басты;
Қасақана істеген;
Амалсыздан үйіне жүрді;
Қолма-қол тапсырды.

Мақсат үстеуін табыңыз
Әлгіндғе, емін-еркін;
Жорта, әдейі;
Орасан, әжептәуір;
Тысқары, мұнда;
Амалсыздан, бекерге.

Өкіну мәнін білдіретін одағай қайсысы
Уау;
Әттең;
Әйда;
Моһ-моһ;
Қәне.

Одағайды табыңыз
Кел, бар;
Алақай, уһ;
Қызыл, көк;
Бес, он, үш;
Үй, тас.
.

Ұлттық байлыққа нелер жатады
Тау, өзен;
Суретші, ақын, әнші;
Тарихи ескерткіштер, табиғи байлық, мәдени мура ;
Жылқы, сиыр;
Ас, отын.

Теңге соңғы рет қай жылы шықты?
2000ж;
1900ж;
1993ж;
2001ж;
2006ж.

Алтыннан да қымбат не?
Қаржы;
Байлық;
Уақыт;
Несие;
Ақша.

Антоним қатысқан сөйлемді көрсетіңіз.
Ара гүлге қонды;
Тыным, тыныштық таппаған.;
Бұраң бел, алма мойын;
Жақсылық пен жамандық – болды егіз.;
Сөз ағасы – құлақ;

Көп нүкте орындарына қажетті қосымшалар қойыңыз. Нарық...экономика...жетектей...күш-бәсекелес...
-а,-шы,-пен;
) -та,-ны, -тін, -тік;
-мен,-ған,-ар,-ар,-ер;
-тық,-ға,-тін,-тік;
-ға,-мын,-ім.

Экономикамен байланысты мақалды табыңыз
Отан оттан да ыстық
Білім -өмір шырағы
Өнер алды – қызыл тіл
Туған жер тұғырың
Ақша кетуге тырысады, есеп ұстауға тырысады


Жалпы зат есімді белгілеңіз.
Ақжелкен” журналы.
Байжан.
Теміртау.
Құлагер
Адам.



Ілік септігінде тұрған зат есімді табыңыз
Мектептің;
Сөзге;
Көркемөнер.
Клубтан;
Маңайда.

Етістіктен болған сын есімді көрсетіңіз
Шашыраңқы;
Ажарлы;
Күллі, тегіс;
Әкелді;
Келді.

Туынды сын есімнен жасалған бастауышты табыңыз
Жігіттің ұйқысы шайдай ашылды.
Айдар сымбатты болды.
Ала жаздай үй салумен болды;
Оқу үшін осында келдім;
Өнерлі өрге жүзер.

Сапалық сын есімнің анықтамасын көрсетіңіз.
Заттың мезгіл-мекенге қатыстылығын білдіретін сын есім;
Заттың белгісін басқа сөз табының қатысы арқылы білдіретін сын есім;
Біркелкі сындардың бірінен екіншісінің артық я кемдігін салыстыратын сын есім;
Біркелкі сындардың бірінен екіншісінің өте артық екендігін білдіретін сын есім;
Негізгі сын есімнің өзінен болып, заттың сынын анықтайтын сын есім;


«Характеристика» сөзінің аудармасын көрсетіңіз
Қарар;
Хаттама;
Қаулы;
Мінездеме;
Жарғы.

Бірге жазылатын сөзді көрсетіңіз
Ат(қора), қол(сұғу);
Көк(шөп), көк(базар);
Қол(қою), сары(май);
Көк(құтан), көк(жиек);
Көк(көз), көз(жұму).

1845 жылы қазіргі Семей облысының территориясында дүниеге келген қазақ поэзиясының классигі кім?
Шоқан;
Ыбырай;
Абай;
Мағжан;
Шәкерім;

Ілік септігінде тұрған зат есімді табыңыз
Клубтан;
Маңайда;
Мектептің;
Көркемөнер;
Сөзге.

Топтау сан есімін көрсетіңіз
Жүз-жүзден;
Мыңдап;
Жетеу;
Жүзінші;
Үштің бірі.

Сұраулы сөйлемді көрсетіңіз
Кеше қар жауды;
Сен де келесің бе;
Жайнай бер, туған жер;
Шіркін, ауыл кеші ерекше-ау;
Ең төменгі баға алды.

Ілік септігі мен тәуелдік жалғауды табыныз
Колхоздың малы;
Анаға сәлем;
Кітапты беру;
Қалаға бару;
Ауылдан келген.

Мына сөздердің ішінен синонимдерді табыныз
Ақылды, ғұлама, кемеңгер;
Ғалым, ұстаз, алпауыт;
Алуан, асқар, айшықты;
Арман, Әсем, зерлі;
Ойшыл, аруана, асқақ.

Тайға таңба басқандай деген тұрақты сөз тіркесінің мағынасын табыңыз
Анық;
Ашық;
Жылдам;
Белгілі;
Уақытында.

Тәуелдік жалғауынан соң жалғанып тұрған табыс жалғауын табыңыз
Әкесін;
Әкені;
Әкемнің;
Әкеме;
Әкеміз.

Зиялы сөзінің антонимін табыңыз
Надан;
Көзі ашық;
Елгезек;
Маңғаз;
Көреген.

Бұйрықты сөйлемді көрсетіңіз
Ауылға ақындар келді;
Осы жағдай сенің әр уақытта есіңде болсын;
Мен шебер бола алар ма екенмін?;
Мәселесі шешілді;
Алатаудың көркін айтсаңшы, шіркін!.

Синоним сөздердің тізбегін табыңыз
Қалқан, қапқан;
Оң, теріс, дұрыс;
Ар, ұят, ождан;
Терезе, перде;
Қал, қала, қалау.