Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Anton91
1 / 1 / 0
Регистрация: 11.02.2009
Сообщений: 10
#1

Найти решение системы линейных уравнений - C++

19.02.2009, 14:42. Просмотров 2257. Ответов 1
Метки нет (Все метки)

Даны действительные числа a1, b1, c1, a2, b2, c2. Выяснить, верно ли, что a1b2-a2b1 0.0001 и если верно, то найти решение системы линейных уравнений.
a1x+b1y+c=0
a2x+b2y+c=0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2009, 14:42     Найти решение системы линейных уравнений
Посмотрите здесь:

C++ Решение системы линейных уравнений методом главных элементов
Найти решение системы линейных уравнений C++
C++ Решение системы линейных уравнений методом простых итераций
C++ Решение системы линейных уравнений с помощью обратной матрицы
Найти решение системы линейных уравнений C++
Найти решение системы линейных уравнений методом Гаусса с выбором главного элемента в столбце C++
Решение системы линейных алгебраических уравнений C++
C++ Решение системы линейных уравнений матричным методом
C++ Численное решение системы линейных уравнений
C++ Переписать решение системы линейных уравнений с помощью указателей
C++ Решение системы линейных уравнений третьего порядка по правилу Крамера

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YurA_280784
Заблокирован
19.02.2009, 16:30     Найти решение системы линейных уравнений #2
Вот тебе прототипы функций реализующих прямой и обратный ход гаусса(короче любую линейеую систему уравнений можно решить)

C++
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
void PryamoiHod(int n, double **a, double *b)
{
    double v;
    for(int k = 0,i,j,im; k < n - 1; k++)
    {
        im = k;
        for(i = k + 1; i < n; i++)
        {
            if(fabs(a[im][k]) < fabs(a[i][k]))
            {
                im = i;
            }
        }
        if(im != k)
        {
            for(j = 0; j < n; j++)
            {
                v        = a[im][j];
                a[im][j] = a[k][j];
                a[k][j]  = v;
            }
            v     = b[im];
            b[im] = b[k];
            b[k]  = v;
        }
        for(i = k + 1; i < n; i++)
        {
            v       = a[i][k]/a[k][k];
            a[i][k] = 0;
            b[i]    = b[i] - v*b[k];
            for(j = k + 1; j < n; j++)
            {
                a[i][j] = a[i][j] - v*a[k][j];
            }
        }
    }
}
 
void ObratniHod(int n, double **a, double *b, double *x)
{
    double s = 0;
    x[n - 1] = b[n - 1]/a[n - 1][n - 1];
    for(int i = n - 2, j; 0 <= i; i--)
    {
        s = 0;
        for(j = i + 1; j < n; j++)
        {
            s = s+a[i][j]*x[j];
        }
        x[i] = (b[i] - s)/a[i][i];
    }
}
а проверить выражение a1*b2-a2*b1 < 0.0001 можно тупо набрав
C++
1
2
3
4
if(a1*b2-a2*b1 < 0.0001 )
{
//делаем что-то если да
}
Yandex
Объявления
19.02.2009, 16:30     Найти решение системы линейных уравнений
Ответ Создать тему
Опции темы

Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru