Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- #include <iostream>
- using namespace std;
- void main(void);
- float f(float x, float t);
- float mu_1(float t);
- float mu_2(float t);
- float phi(float x);
- // – //
- void main(void)
- {
- setlocale(0, "RUS");
- float a[256][256];
- float b[256][256];
- float u[256][256];
- float T = 0.05;
- float l = 3.14;
- float h = 0.1;
- float tau = 0.01;
- int n, i, j, k;
- float s = pow(h, 2) / tau;
- n = ceil(l / h);
- for (i = 0; i <= 119; i++)
- {
- for (j = 1; j <= 119; j++)
- {
- u[i][j] = 0;
- a[i][j] = 0;
- b[i][j] = 0;
- }
- }
- for (i = 0; i <= n; i++)
- {
- u[i][0] = phi(i * h);
- }
- for (j = 0; j <= floor(T / tau); j++)
- {
- u[0][j] = mu_1(tau * j);
- u[n][j] = mu_2(tau * j);
- }
- for (j = 0; j <= floor(T / tau); j++)
- {
- a[1][j + 1] = 1 / (2 + s);
- for (i = 2; i <= n - 1; i++)
- {
- a[i][j + 1] = 1 / (2 + s - a[i - 1][j + 1]);
- }
- b[1][j + 1] = mu_1((j + 1) * tau) + s * u[1][j] + pow(h, 2) * f(h, (j + 1) * tau);
- for (i = 2; i <= n - 1; i++)
- {
- b[i][j + 1] = a[i - 1][j + 1] + s * u[i][j] + pow(h, 2) * f(i * h, (j + 1) * tau);
- }
- u[n][j + 1] = mu_2((j + 1) * tau);
- for (k = 1; k <= n - 1; k++)
- {
- u[n - k][j + 1] = a[n - k][j + 1] * (b[n - k][j + 1] + u[n - k + 1][j + 1]);
- }
- }
- cout << "Значения функции u(x, t) в области D = { 0 <= X <= " << l << ", 0 <= T <= " << T << " }:\n\n";
- for (j = 0; j <= floor(T / tau); j++)
- {
- for (i = 0; i <= n; i++)
- {
- cout << u[i][j] << " ";
- }
- cout << endl;
- }
- cout << "\nОсь x расположена горизонтально; ось t расположена вертикально и направлена вниз";
- cout << "Шаг по оси x равен " << h <<"; шаг по оси t равен " << tau << ".\n";
- system("pause");
- }
- // – //
- float f(float x, float t)
- {
- return 0;
- }
- // – //
- float mu_1(float t)
- {
- return 0;//2.1 + t;
- }
- // – //
- float mu_2(float t)
- {
- return 0;// 3.2 * (t + 1 / 2.71828);
- }
- // – //
- float phi(float x)
- {
- return 2 * sin(2 * x);// (1.1 * pow(x, 2) + 2.1) * exp(-x);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement