Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Системы линейных уравнений

Автор:   •  Январь 8, 2022  •  Практическая работа  •  4,457 Слов (18 Страниц)  •  238 Просмотры

Страница 1 из 18

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Южно-Уральский государственный университет»

(Национальный исследовательский университет)

Кафедра Автоматики и Управления

ОТЧЕТ

по практической работе №5

«Системы линейных уравнений»

Вариант №24

Автор работы:

студент группы КЭ-217

___________Хасенов Р.С

«__» ____________ 2020

Проверила:

__________ Вставская Е.В

«__» ____________ 2020

Челябинск 2020


1. Текст задания

[pic 1]


2. Описание логических структур

Описание логической структуры программы представлено в виде блок схем алгоритма.

1 способ (обратная матрица)

[pic 2]

[pic 3]

[pic 4]

[pic 5]

2 способ (Крамер)

[pic 6]

[pic 7]

[pic 8]

3 способ (Гаусс)

[pic 9]

[pic 10]

[pic 11]

 [pic 12][pic 13]



3. Входные данные программ

Во всех случаях вводится матрица СЛАУ и вектор свободных множителей.

1 способ (Обратная матрица)

[pic 14]

2 способ (Крамер)

[pic 15]

3 способ (Гаусс)

[pic 16]


4. Выходные данные для программ

Выводится количество итераций, для поиска решения.

1 способ (Обратная матрица)

[pic 17]

2 способ (Крамер)

[pic 18]

3 способ (Гаусс)

[pic 19]


5. Исходный код программ

1 способ (Обратная матрица)

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#include <stdlib.h>

double ** Input(int rows, int cols) {

        double **p;

        p = (double**)malloc(rows * sizeof(double*));

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

                p[i] = (double*)malloc(cols * sizeof(double));

                for (int j = 0; j < cols; j++)

                {

                        printf("mas[%d][%d]= ", i, j);

                        scanf("%lf", &p[i][j]);

                }

        }

        return p;

}

void Output(double **mas, int rows, int cols) {

        int i, j;

        for (i = 0; i<rows; i++) {

                for (j = 0; j<cols; j++)

                        printf("%8.4lf ", mas[i][j]);

                printf("\n");

        }

}

// Сумма двух матриц

double ** Summa(double **a, double **b, int rows, int cols) {

        double **p;

        p = (double**)malloc(rows * sizeof(double*));

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

                p[i] = (double*)malloc(cols * sizeof(double));

                for (int j = 0; j < cols; j++)

                {

                        p[i][j] = a[i][j] + b[i][j];

                }

        }

        return p;

}

// Произведение двух матриц

double** Multiply(double **a, double **b, int rows1, int cols1, int rows2, int cols2)

{

        if (cols1 != rows2) return NULL;

        double** c = (double**)malloc(rows1 * sizeof(double*));

...

Скачать:   txt (14.7 Kb)   pdf (787 Kb)   docx (501.7 Kb)  
Продолжить читать еще 17 страниц(ы) »
Доступно только на Essays.club