Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решение дифференциальных уравнений методом прогонки метод прогонки для решения дифференциальных уравнений с++ НЕ ЗНАЮ как написать программу https://www.cyberforum.ru/ cpp-beginners/ thread2770134.html C++ Класс: Создайте класс "OpenTime", в котором будет храниться информация о часах работы предприятия для каждого дня недели
Помогите пожалуйста решить задачу c++ нужно использовать обязательно класс. задача 1. создайте класс "OpenTime", в котором будет храниться информация о часах работы предприятия для каждого дня...
C++ Шаблон – двоичный файл, содержащий односвязный список объектов Шаблон – двоичный файл, содержащий односвязный список объектов. Тип хранимого в файле объекта – параметр шаблона В начале файла расположен файловый указатель на первый элемент списка. Элемент списка... https://www.cyberforum.ru/ cpp-beginners/ thread2770116.html C++ Функция треугольника https://www.cyberforum.ru/ cpp-beginners/ thread2770111.html
Для набора заданных пользователем длин отрезков определить тройку , с которых можна построить треугольник. Определить соотвестующию функцию . Определить треугольник, который имеет найменьший...
Классы: вывести список магазинов, которые сейчас открыты C++
Помогите пожалуйста решить задачу c++ нужно использовать обязательно класс. задача 1. создайте класс "OpenTime", в котором будет храниться информация о часах работы предприятия для каждого дня...
C++ Сформировать новый массив путем перевода элементов начального массива из 8-ной в 10-ную систему счисления Дан двумерный массив , который состоит из чисел в восьмеричной системе счисления. Сформировать из него новый массив путем перевода элементов начального массива в десятичную систему счисления. Ребят... https://www.cyberforum.ru/ cpp-beginners/ thread2770098.html
C++ Гири и весы Помогите пожалуйста решить задачу :resent: c++ Комплект гирь состоит из N гирь различного веса; в Вашем распоряжении имеются два таких комплекта. Сможете ли Вы уравновесить рычажные весы гирями из... https://www.cyberforum.ru/ cpp-beginners/ thread2770080.html Вычислить значение выражения C++
Мозгов не хватает написать код Вычислить X=max(a+b+c,|a+b-c,min(a*b,2*a*c))
C++ Алгоритм банкира Есть алгоритм банкира для заданного количества ресурсов и процессов, нужно реализовать такую же задачу, только количество ресурсов и процессов вводится пользователем с клавиатуры. Алгоритм банкира ... https://www.cyberforum.ru/ cpp-beginners/ thread2770066.html C++ Ввод данных в массив, состоящих из структуры https://www.cyberforum.ru/ cpp-beginners/ thread2770057.html
Здраствуйте, столкнулась с задачей долго искала похожие исходники, но так и не смогла всё склеить в единый код, прошу вашей помощи Задание: Описать структуру с именем NOTE,...
C++ Тернарная операция
С помощью тернарной операции найдите наибольшее из 3-ех чисел. Разными способами пробовала, один из них float a1,a2,a3; a1=1; a2=2; a3=3; float Max=a1; Max=a2>Max?a2:a3>Max?a3:a1; cout<<Max;
C++ С++ https://www.cyberforum.ru/ cpp-beginners/ thread2770027.html
С++ Подключите следующие заголовочные файлы: limits.h math.h string.h Объявить переменные, присвоить переменным соответствующие значения: height_anhel_waterfall присвоить 979...
-2 / 0 / 0
Регистрация: 01.03.2020
Сообщений: 198
0

Как переделать код метода конечных разностей на метод прогонки? - C++ - Ответ 15185292

16.01.2021, 15:18. Показов 208. Ответов 0
Метки (Все метки)

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <windows.h>
#include <cmath>
using namespace std;
 
double p(double x) {
    return 0;
}
 
double q(double x) {
    return -0.5/pow(0.5*x+1,2);
}
 
double f(double x) {
    return 0.75/(2*(0.4*x+1));
}
 
void gauss(double** A, double* B, double* X, int n);
 
int main() {
    double alpha0 = 0.5; double alpha1 = -2; double Ac = 0;
    double beta0 = 0; double beta1 = 1; double Bc = -0.85;
    double a0 = 0; double b0 = 1;
    int n = 4;
    
    double** A = new double* [n + 1];
    for (int i = 0; i < n + 1; i++) {
        A[i] = new double[n + 1];
    }
   
    double* B = new double[n + 1]; 
    double* X = new double[n + 1]; 
    
    double h = (b0 - a0) / n;
    for (int i = 0; i <= n; i++) {
        X[i] = a0 + i * h;
        
    }
    
    cout << "h=" << h << endl;
    
    for (int i = 0; i <= n - 2; i++) {
        A[i][i] = h * h * q(X[i]) - h * p(X[i]) + 1;
        A[i][i + 1] = h * p(X[i]) - 2;
        A[i][i + 2] = 1;
        B[i] = h * h * f(X[i]);
    }
    A[n - 1][0] = alpha0 * h - alpha1;
    A[n - 1][1] = alpha1;
    A[n][n - 1] = -beta1;
    A[n][n] = beta0 * h + beta1;
    B[n - 1] = h * Ac;
    B[n] = h * Bc;
    
    
    for (int i = 0; i <= n; i++) {
        for (int j = 0; j <= n; j++) {
            cout << "A[" << i << "]" << "[" << j << "]=" << A[i][j] << " ";
        }
        cout << endl;
    }
    
    cout << endl;
    
    for (int i = 0; i <= n; i++) {
        cout << "B[" << i << "]=" << B[i] << " ";
    }
    cout << endl;
    cout << endl;
    
    
    double* X1 = new double[n + 1]; 
    gauss(A, B, X1, n + 1); 
    
    for (int i = 0; i <= n; i++) {
        cout << "X1[" << i << "]=" << X1[i] << " ";
    }
    
    system("PAUSE");
    return 0;
}
 
void gauss(double** A, double* B, double* X, int n) {
    int m = n + 1;
    
    double** C = new double* [n];
    for (int i = 0; i < n; i++) {
        C[i] = new double[n + 1];
    }
   
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            C[i][j] = A[i][j];
        }
        C[i][n] = B[i];
    }
   
    for (int k = 0; k < n - 1; k++) {
        for (int i = k + 1; i < n; i++) {
            for (int j = m - 1; j >= k; j--) {
                C[i][j] = C[i][j] - C[i][k] * C[k][j] / C[k][k];
            }
        }
    }
    
    X[n - 1] = A[n - 1][m - 2] / A[n - 1][m - 2];
 
    for (int i = n - 2; i >= 0; i--) {
        double s = 0;
        for (int j = i + 1; j < m - 1; j++) {
            s = s + C[i][j] * X[j];
        }
        X[i] = (C[i][m - 1] - s) / C[i][i];
    }
 
}


Вернуться к обсуждению:
Как переделать код метода конечных разностей на метод прогонки? C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2021, 15:18
Готовые ответы и решения:

Как реализовать метод конечных разностей на примере диф уравнения 2-го порядка?
как реализавать метод конечных разностей на примере диф уравнения 2-го порядка? Добавлено через...

Система нелинейных уравнений с использованием метода конечных разностей
приведите кто-нибудь пожалуйста пример решения такой системы в MathCad!

Представить алгоритм метода конечных разностей решения уравнения
Добрый день! Прошу помочь с решением уравнения (задача во вложении)

Метод конечных разностей
Здравствуйте! Нужна помощь с методом конечных разностей. На этом сайте...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2021, 15:18
Помогаю со студенческими работами здесь

Метод конечных разностей
Всем доброго времени суток. В университете поставили задачу написать на MathCAD программу,...

Метод конечных разностей
Пожалуйста, помогите решить задачу для универа Необходимо решить задачу с помощью метода...

метод конечных разностей
решить задачу методом конечных разностей с заданной точностью Правила форума :rtfm: Правила,...

Метод конечных разностей
Подскажите, пожалуйста, как правильно составить СЛАУ для данного метода. (ДУ 2ого порядка с...

Метод конечных разностей
#include &quot;stdafx.h&quot; #include&quot;iostream&quot; #include&quot;cmath&quot; using namespace std; int main() { ...

Метод конечных разностей
У меня есть задача, нужно написать программу для решение краевой задачи методом конечных разностей....

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru