Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <fstream>
- using namespace std;
- const int number_of_points = 3000;
- const int point_of_start_internal_condition = number_of_points / 3;
- const int border_of_internal_condition = number_of_points / 10;
- double upper_diagonal[number_of_points];
- double lower_diagonal[number_of_points];
- double main_diagonal[number_of_points];
- double external_function[number_of_points];
- double intial_conditions[number_of_points];
- void create_approximation () {
- for (int i = 0; i < number_of_points; i++) {
- ::upper_diagonal[i] = 1;
- ::lower_diagonal[i] = 1;
- ::main_diagonal[i] = -2;
- ::external_function[i] = 0;
- ::intial_conditions[i] = 0;
- }
- ::upper_diagonal[number_of_points - 1] = 0;
- ::lower_diagonal[0] = 0;
- ::main_diagonal[0] = -1;
- ::main_diagonal[number_of_points - 1] -= (1 / 2 + 1 / number_of_points) / (1 / 2 - 1 / number_of_points);
- ::external_function[0] = -1 / number_of_points;
- for (int i = point_of_start_internal_condition - border_of_internal_condition; i < point_of_start_internal_condition + border_of_internal_condition + 1; i++) {
- intial_conditions[i] = 1;
- }
- }
- void multiplication_3dig_matrix_on_vector (int dim, double *lower_diagonal, double *main_diagonal, double *upper_diagonal, double *result) {
- for (int i = 0; i < dim; i++) {
- result[i] = lower_diagonal[i] + main_diagonal[i] + upper_diagonal[i];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement