Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

KP_4_Russkikh_1323

.docx
Скачиваний:
0
Добавлен:
21.06.2024
Размер:
7.22 Кб
Скачать

```//Задание 4 вариант 30 стр 227

using System;

class Program

{

static void Main(string[] args)

{

double h = 0.1;

int Nx = (int)(1 / h) + 1; // Количество узлов по x

int Nt = (int)(1 / h) + 1; // Количество узлов по t

// Создаем массивы для сетки и значений функций

double[,] grid = new double[Nx, Nt];

double[,] ut = new double[Nx, Nt]; // Значения производной по времени

double[] x_values = new double[Nx]; // Значения x

double[] t_values = new double[Nt]; // Значения t

// Заполняем значения x и t

for (int i = 0; i < Nx; i++)

{

x_values[i] = i * h;

}

for (int j = 0; j < Nt; j++)

{

t_values[j] = j * h;

}

// Вычисляем начальное условие f0(x) и производную по времени ut(x,0)

for (int i = 0; i < Nx; i++)

{

double x = x_values[i];

double f0 = 0.5 * Math.Pow(x + 1, 2);

double ut0 = (x + 0.5) * Math.Cos(Math.PI * x);

grid[i, 0] = f0;

ut[i, 0] = ut0;

}

// Заполняем граничные условия w1(t) и w2(t)

for (int j = 0; j < Nt; j++)

{

double t = t_values[j];

double w1 = 0.5;

double w2 = 2 - 3 * t;

grid[0, j] = w1;

grid[Nx - 1, j] = w2;

}

// Выводим значения сетки и начальных условий для проверки

Console.WriteLine("Сетка и начальные условия:");

for (int i = 0; i < Nx; i++)

{

for (int j = 0; j < Nt; j++)

{

Console.WriteLine($"u({x_values[i]}, {t_values[j]}) = {grid[i, j]}");

Console.WriteLine($"ut({x_values[i]}, {t_values[j]}) = {ut[i, j]}");

}

}

}

}```

Соседние файлы в предмете Конструирование программ