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

Решить систему алгебраических линейных неоднородных уравнени - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Английские и русские буквы. http://www.cyberforum.ru/cpp-beginners/thread335375.html
Здравствуйте! Подскажите пожалуйста, как в С отличить русские буквы от английских? Я думаю что надо оперировать с кодами букв, но как именно-не соображу. Добавлено через 18 минут /* * File: main.cpp * Author: alchemist * Больше свинок для науки!
C++ Что делается этимим строчками void main() { srand((unsigned)time(NULL)); setlocale(0, ""); ..... } http://www.cyberforum.ru/cpp-beginners/thread335373.html
C++ Почему то не могу считать матрицу
Есть матрица порядка 3638. Мне нужно найти обратную к ней. ( В последствии порядок матрицы будет около 100 000) Есть код, вот только он не совсем рабочий. На маленьких матрицах порядка 3-4 он работает отлично, а вот на матрице порядка 3638 - не работает. В качестве результата выдает исходную матрицу. Помогите найти косяк. И по возможности сделать код "по-шустрее" Вот код на С++ #include...
наследование классов C++
Здарова, народ! :D Вот сижу и пытаюсь сделать задание из книги по которой "учимся программировать в универе", а там такой поворот событий :wall:, что я не понял как сделать. Помогите как накатать ето задание в коде. Теперь само задание: 1) добавьте в базовый и производный классы еще один конструктор с параметрами - толщиной оболочки thickness и наполнителем filter, обеспечив тем самым...
C++ Дорогие, помогите с линковкой libeay32.lib http://www.cyberforum.ru/cpp-beginners/thread335326.html
Здравствуйте, Уважаемые гуру! Собираю ntp-сервер, написанный на "с". Называется ntp 4.2.6p3 http://support.ntp.org/bin/view/Main/SoftwareDownloads Собираю его в Visual Studio 2003, в последствии буду интегрировать в свой проект. Проблема в следующем. В ntp используется openSSL и соответственно требуются либы. При линковке кричал, что не может найти libeay32.lib. Скачал openSSL, собрал его так:...
C++ Нужен алгоритм Как на с++ сделать так что б в игре противники двигались паралельно главному персонажу (которым непосредственно мы и управляем)... Заранее спасибо за идеи... PS Пробовал все реализовать так while(кол-во звезд на карте не ноль) { getch() while (!kbhit()) подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
04.08.2011, 15:37     Решить систему алгебраических линейных неоднородных уравнени
Ну как по мне он почти ничем не отличается
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
53
void PryamoiHod(int n, double **a, double *b)
{
        double v;
        for(int k = 0,i,j,im; k < n - 1; k++)
        {
                printf("UPDATING %04d ROW\r\n",k + 1);
                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               = 1.0*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] -= v*a[k][j];
                }
        }
}
 
void ObratniHod(int n, double **a, double *b, double *x)
{
        double s = 0;
        x[n - 1] = 1.0*b[n - 1]/a[n - 1][n - 1];
        for(int i = n - 2, j; 0 <= i; i--)
        {
                printf("UPDATING %04d ROW\r\n",n - i - 1);
                s = 0;
                for(j = i + 1; j < n; j++)
                {
                        s = s+a[i][j]*x[j];
                }
                x[i] = 1.0*(b[i] - s)/a[i][i];
        }
}
Добавлено через 2 минуты
Введением EPS мы можем что то выграть, но не факт

Цитата Сообщение от diagon Посмотреть сообщение
if (abs (a[i][col]) > abs (a[sel][col]))
* * * * * * * * sel = i;
* * * * if (abs (a[sel][col]) < EPS)
* * * * * * continue;
* * * * for (int i=col; i<= m; ++i)
* * * * * * swap (a[sel][i], a[row][i]);
* * * * where[col] = row;
for (int i=0; i<n; ++i)
* * * * * * if (i != row) {
* * * * * * * * double c = a[i][col] / a[row][col];
* * * * * * * * for (int j=col; j<= m; ++j)
* * * * * * * * * * a[i][j] -= a[row][j] * c;
* * * * * * }
* * * * ++row;


Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
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 * * * * * * * = 1.0*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] -= v*a[k][j];
* * * * * * * * }
Цитата Сообщение от diagon Посмотреть сообщение
for (int i=0; i<n; ++i) {
* * * * double sum = 0;
* * * * for (int j=0; j<m; ++j)
* * * * * * sum += ans[j] * a[i][j];
* * * * if (abs (sum - a[i][m]) > EPS)
* * * * * * return 0;
* * }
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
x[n - 1] = 1.0*b[n - 1]/a[n - 1][n - 1];
* * * * for(int i = n - 2, j; 0 <= i; i--)
* * * * {
* * * * * * * * printf("UPDATING %04d ROW\r\n",n - i - 1);
* * * * * * * * s = 0;
* * * * * * * * for(j = i + 1; j < n; j++)
* * * * * * * * {
* * * * * * * * * * * * s = s+a[i][j]*x[j];
* * * * * * * * }
* * * * * * * * x[i] = 1.0*(b[i] - s)/a[i][i];
* * * * }
 
Текущее время: 08:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru