Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10

Изменить программу интегрирования методом второго порядка

05.03.2015, 23:19. Показов 1896. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Возникла проблема с задачей. Вот ее решение:
Pascal Скопировано
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
Const
Dt=0.1;
V=-0.5;
Q=0.0;
 
Var
f:Text;
V_old,V_new,Q_old,Q_new,t:Real;
i:integer;
 
Begin
Assign(f,'D:\Result1.txt');
Rewrite(f);
t:=0;
Q_old:=Q;
V_old:=V;
Writeln(f,t:5:1,Q:15:3,V:15:3);
for i:=1 to 350 do
begin
t:=Dt*i;
Q_new:=Q_old+V_old*Dt;
V_new:=V_old+Exp(-Q_old)*(Exp(-Q_old)-1)*Dt;
Writeln(f,t:5:1,Q_new:15:3,V_new:15 :3);
Q_old:=Q_new;
V_old:=V_new;
end;
Close(f);
End.
Тут реализуется метод интегрирования даже не второго, а первого
порядка, т.е. в один шаг. Он страшно неточный, поэтому решение
раскачивается и все значения функций быстро нарастают. Поэтому
нужно использовать метод хотя бы второго порядка (в два шага),
а еще лучше - четвертого Рунге-Кутты. И шаг интегрирования должен быть примерно 0.001.
Должны быть периодические функции. Шаг задаю, получаются периодические все правильно. И вместо от 1до350 я поставил от 1до35000. Но у меня не получается преобразовать из первого порядка во второй.
Помогите пожауйста. Заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2015, 23:19
Ответы с готовыми решениями:

Уравнение второго порядка, операционным методом
y"+y'-4y=(10+4t)e^(2t); y(0)=0; y'(0)=2 У меня получилось 2/(p-2)^2 + -4/(P^2+p-4); нужно перейти к оригиналу, подскажите пожалуйста...

Создать абстрактный класс линия второго порядка с полями – коэффициенты уравнения второго порядка
Задание:Создать абстрактный класс линия второго порядка с полями – коэффициенты уравнения второго порядка. На его основе создать классы...

Изменить порядок интегрирования. Построить область интегрирования и вычислить двойной интеграл
Помогите, пожалуйста:)

17
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8590 / 4436 / 1658
Регистрация: 01.02.2015
Сообщений: 13,761
Записей в блоге: 9
06.03.2015, 21:29
Цитата Сообщение от kot64rus Посмотреть сообщение
Должны быть периодические функции. Шаг задаю, получаются периодические все правильно.
А если не секрет - какой период у функции Exp(-Q_old)*(Exp(-Q_old)-1)?
0
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
07.03.2015, 00:09  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
А если не секрет - какой период у функции Exp(-Q_old)*(Exp(-Q_old)-1)?
Да там неважно я так понял по заданию. Главное, что периодический график был. Просто когда я задавал шаг 0,1(как в програаму), то график резко вверх уходил. А когда 0,001, то периодический. Если что исследование проводил так:
1. Имеем существенно-нелинейное дифференциальное уравнение второго порядка с граничными условиями, каковое нужно решить.
2. Решение сводится прежде всего к преобразованию уравнения второго порядка к системе уравнений первого порядка. Делается это так.
а) Исходное уравнение:
d²q/dt² = exp(-q)(exp(-q)-1)
б) Вводим новую переменную v = dq/dt
в) Записываем систему
dv/dt = exp(-q)(exp(-q)-1) = f(q)
dq/dt = v = g(v)

3. Решаем систему численно. Поскольку нам предлагается использовать простой метод второго порядка, то воспользуемся простым (немодифицированным) методом Эйлера. Тут так.
а) Задаем шаг по времени Δt.
б) Допустим, мы знаем значения функций q(t) и v(t) для какого-то i-того значения t, т.е. мы знаем q(ti) и v(ti). Тогда мы определяем значения q(ti+Δt) и v(ti+Δt), как
v(ti+Δt) = v(ti) + f(q(ti))*Δt
q(ti+Δt) = q(ti) + g(v(ti))*Δt
в) Стартуя от данных начальных условий, строим функции и графики q(t) и v(t).
Вот тут и в программе я использовал метод интегрирования первого порядка. А нужно ходяб второго. Я в интегрировании не силен( и никак не выходит сделать как надо
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8590 / 4436 / 1658
Регистрация: 01.02.2015
Сообщений: 13,761
Записей в блоге: 9
07.03.2015, 01:58
Из
https://www.cyberforum.ru/cgi-bin/latex.cgi?y''=f(t,y,y')
получим
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix}<br />
\\y=y_1<br />
\\ {y'}_{1}=y_2=f_1(t,y_1,y_2)<br />
\\{y'}_{2}=f_2(t,y_1,y_2)=f(t,y,y')<br />
\end{matrix}\right.
а потом
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix}<br />
\\ {y'}_{1}=f_1(t,y_1,y_2)<br />
\\{y'}_{2}=f_2(t,y_1,y_2)<br />
\end{matrix}\right.
Методом Рунге-Кутты 4 порядка
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix}<br />
\\ y_1(t+h)=y_1(t)+\frac{h}{6}(k_1+2*k_2+2*k_3+k_4)<br />
\\y_2(t+h)=y_2(t)+\frac{h}{6}(m_1+2*m_2+2*m_3+m_4)<br />
\end{matrix}\right.
где
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix}<br />
\\ k_1=f_1(t,y_1(t),y_2(t))<br />
\\ m_1=f_2(t,y_1(t),y_2(t))<br />
\\ k_2=f_1(t+\frac{h}{2},y_1(t)+\frac{k_1}{2},y_2(t)+\frac{m_1}{2})<br />
\\ m_2=f_2(t+\frac{h}{2},y_1(t)+\frac{k_1}{2},y_2(t)+\frac{m_1}{2})<br />
\\ k_3=f_1(t+\frac{h}{2},y_1(t)+\frac{k_2}{2},y_2(t)+\frac{m_2}{2})<br />
\\ m_3=f_2(t+\frac{h}{2},y_1(t)+\frac{k_2}{2},y_2(t)+\frac{m_2}{2})<br />
\\ k_4=f_1(t+h,y_1(t)+k_3,y_2(t)+m_3)<br />
\\ m_4=f_2(t+h,y_1(t)+k_3,y_2(t)+m_3)<br />
\end{matrix}\right.
Как определялось ранее
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix}<br />
\\ f_1(t,y_1,y_2)=y_2<br />
\\ f_2(t,y_1,y_2)=f(t,y_1,y_2)<br />
\end{matrix}\right.
Это дал поиск по "Рунге Кутта"

Добавлено через 9 минут
-----------------------------------
Для решения можно воспользоваться каркасом, который я набросал для дифура 1-го порядка - т.к. в твоём первом посте не было ни слова о порядке дифура.
Pascal Скопировано
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
program RungeKutta4;
 
  function f(t, y: real): real;
  begin
    f := exp(-t) * (exp(-t) - 1);
  end;
 
  procedure RungeKutta4Step(var t, y: real; h: real);
  var
    k1, k2, k3, k4: real;
  begin
    k1 := f(t, y);
    k2 := f(t + (h / 2), y + k1 * (h / 2));
    k3 := f(t + (h / 2), y + k2 * (h / 2));
    k4 := f(t + h, y + k3 * h);
    y  := y + (k1 + 2 * k2 + 2 * k3 + k4) * h / 6;
    t  := t + h;
  end;
 
  procedure RungeKutta4(t0, tfin, h, y0: real; var yfin: real; Show: boolean);
  var
    t: real;
    y: real;
  begin
    t := t0;
    y := y0;
    if Show then
      writeln('y(', t: 12: 5, ')=', y: 12: 5);
    while t <= tfin do
    begin
      RungeKutta4Step(t, y, h);
      if Show then
        writeln('y(', t: 12: 5, ')=', y: 12: 5);
    end;
    yfin := y;
  end;
 
  procedure Differ(t0, tfin, y0: real; eps: real);
  var
    h: real;
    y1, y2: real;
  begin
    h := (tfin - t0) / 1;
    RungeKutta4(t0, tfin, h, y0, y2, False);
    repeat
      y1 := y2;
      h  := h / 2;
      RungeKutta4(t0, tfin, h, y0, y2, False);
    until abs(y2 - y1) < eps;
    RungeKutta4(t0, tfin, h, y0, y2, True);
  end;
 
begin
  Differ(0, 35, -0.5, 0.001);
end.
Надеюсь, что ты сможешь скорректировать под дифур 2-го порядка.
1
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
07.03.2015, 13:53  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Для решения можно воспользоваться каркасом, который я набросал для дифура 1-го порядка - т.к. в твоём первом посте не было ни слова о порядке дифура.
О, спасибо большое =). Только правда было бы лучше просто второго порядка. Мне сказали, чтоб изменил программу немного и добавил пару строк в нее. А тут она полностью изменена. И чтоб в файл выводилась, как у меня в первом варианте. А можно просто в моей программе сделать так, чтоб изменив несколько строк реализовался метод интегрирования второго порядка. Извиняюсь за наглость конечно.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8590 / 4436 / 1658
Регистрация: 01.02.2015
Сообщений: 13,761
Записей в блоге: 9
07.03.2015, 14:25
Цитата Сообщение от kot64rus Посмотреть сообщение
А можно просто в моей программе сделать так, чтоб изменив несколько строк реализовался метод интегрирования второго порядка.
Наверное...

Я не пойму "2-го порядка" относится к методу или к уравнению. Но независимо от этого, все изменения будут локализованы в RungeKutta4Step, теперь там нужно добавить вычисления для 2-й производной, а также во всех процедурах решения добавить значение 1-й производной в точке t0 (начальные условия задачи Коши). Ещё, если будет использован другой метод решения, то потребуется переименовать RungeKutta4Step в Xxxx2Step.

А приведённую в посте №1 прогу не очень хочется модифицировать. Она рабочая, но нескладная, не расширяемая. Если я начну её переделывать - она сильно изменится.

В общем попробуй какой-либо другой вариант - свою новую или переделать одну из имеющихся... Математическая модель уже есть, осталось только в "железе" воплотить.
0
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
07.03.2015, 14:36  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Я не пойму "2-го порядка" относится к методу или к уравнению.
К методу интегрирования второго порядка.
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
В общем попробуй какой-либо другой вариант - свою новую или переделать одну из имеющихся...
Вы правы, наверное лучше новую.

А можно тогда код для программы для этой задачи с методом интегрирования второго порядка? И чтоб с выводом в текстовый файл результаты
0
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
07.03.2015, 14:44  [ТС]
Ну еще такой график получался, когда я делал программу первый раз с шагом 0,001. И вот нужно бы только с методом интегрирования второго порядка программу и график похожий должен получиться
Миниатюры
Изменить программу интегрирования методом второго порядка  
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8590 / 4436 / 1658
Регистрация: 01.02.2015
Сообщений: 13,761
Записей в блоге: 9
07.03.2015, 15:45
1. Вывод в текстовый файл по образу и подобию
Pascal Скопировано
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
procedure RungeKutta4(t0, tfin, h, y0: real; var yfin: real; Show: boolean);
  var
    t: real;
    y: real;
    f: Text;
  begin
    t := t0;
    y := y0;
    if Show then
    begin
      Assign(f, 'Result.txt');
      Rewrite(f);
    end;
    if Show then
      writeln(f, 'y(', t: 12: 5, ')=', y: 12: 5);
    while t <= tfin do
    begin
      RungeKutta4Step(t, y, h);
      if Show then
        writeln(f, 'y(', t: 12: 5, ')=', y: 12: 5);
    end;
    yfin := y;
    if Show then
      Close(f);
  end;
2. Не соображу, как можно нарисовать график.
3. Попробуй реализовать хоть как-нибудь решение, т.к. пока нечего строить.
0
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
07.03.2015, 17:28  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
2. Не соображу, как можно нарисовать график.
Ах да. Задание тут такое было:
Составить программу интегрирования методом второго порядка
Я уже когда то писал сюда, но потом вроде разобрался.
Там в задании надо построить 2 графика зависимости V(t) и Q(t), проинтегрировава численно уравнение. Все у меня получилось, но преподователь сказал, что я проинтегрировал первым порядком, а нужно хотябы вторым. Вот и думаю...а как можно ее написать так...Программа должна вывести текстовый файл(скину его). В нем должно быть 3 столбца:1)шаг по времени, который задаем;2)Q;3)V. После этого запускаем любой графический редактор(я пользовался гнуплотом) и строим 2 графика q(t) и v(t). График, что скидывал, он практически верный, надо было изменить задачу, использовава метод интегрирования второго порядка
Вложения
Тип файла: rar Result1.rar (38.3 Кб, 6 просмотров)
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8590 / 4436 / 1658
Регистрация: 01.02.2015
Сообщений: 13,761
Записей в блоге: 9
07.03.2015, 21:57
В общем смотри. Всё то же самое, только модифицированный метод Эйлера (по схеме прогноз-коррекция). Формулы - на русской странице Wikipedia.
Вывод t,y,y',y'' в файл организуешь самостоятельно - это не сложно.
Pascal Скопировано
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
{
Решение ОДУ 2 порядка модифицированным методом
Эйлера по формуле прогноз+коррекция.
 
Вид ОДУ
y''=f(t, y, y')
 
Обозначения в программе
dy  - y'
ddy - y''
Приводим исходное ОДУ к системе
y1=y
y1'=y2=f1(t, y1, y2)
y2'=y''=f2(t, y1, y2)=f(t, y, y')
 
y1'=f1(t, y1, y2)
y2'=f2(t, y1, y2)
где
f1(t, y1, y2)=y2
f2(t, y1, y2)=f(t, y1, y2)
}
program EulerMethodModificated;
 
  function f(t, y, dy: real): real;
  begin
    f := -sin(t);
  end;
 
  function f1(t, y, dy: real): real;
  begin
    f1 := dy;
  end;
 
  function f2(t, y, dy: real): real;
  begin
    f2 := f(t, y, dy);
  end;
 
  procedure EulerModStep(var t, y1, y2: real; h: real);
  var
    y1p, k1, k2: real;
    y2p, m1, m2: real;
  begin
    y1p := y1 + h * f1(t, y1, y2);
    k1  := f1(t, y1, y2);
    k2  := f1(t, y1p, y2);
    y2p := y2 + h * f2(t, y1, y2);
    m1  := f2(t, y1, y2);
    m2  := f2(t, y1, y2p);
 
    y1 := y1 + (k1 + k2) * h / 2;
    y2 := y2 + (m1 + m2) * h / 2;
    t  := t + h;
  end;
 
  procedure SolveODE2(t0, tfin, h, y0, dy0: real; var yfin: real;
    Show: boolean; Nprint: integer);
  var
    t: real;
    y, dy: real;
    Tprint: real;
  begin
    t  := t0;
    y  := y0;
    dy := dy0;
    if Show then
    begin
      writeln('y(', t: 12: 5, ')=', y: 12: 5);
      Tprint := (tfin - t0) / Nprint + t0;
    end;
    while t <= tfin do
    begin
      EulerModStep(t, y, dy, h);
      if Show and (t >= Tprint) then
      begin
        writeln('y(', t: 12: 5, ')=', y: 12: 5);
        Tprint := Tprint + (tfin - t0) / Nprint;
      end;
    end;
    yfin := y;
  end;
 
  procedure Differ(t0, tfin, y0, dy0: real; eps: real);
  var
    h: real;
    y1, y2: real;
  begin
    h := (tfin - t0) / 10;
    SolveODE2(t0, tfin, h, y0, dy0, y2, False, 0);
    repeat
      y1 := y2;
      h  := h / 2;
      SolveODE2(t0, tfin, h, y0, dy0, y2, False, 0);
    until (abs(y2 - y1) < eps) or (h < eps / 1000);
    SolveODE2(t0, tfin, h, y0, dy0, y2, True, 10);
  end;
 
begin
  Differ(0, 3.5 * 5, 0, 1, 0.01);
end.
0
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
08.03.2015, 22:25  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
В общем смотри. Всё то же самое, только модифицированный метод Эйлера (по схеме прогноз-коррекция). Формулы - на русской странице Wikipedia.
Вывод t,y,y',y'' в файл организуешь самостоятельно - это не сложно.
Хорошо. Спасибо большое.
0
Модератор
10155 / 5492 / 3370
Регистрация: 17.08.2012
Сообщений: 16,796
09.03.2015, 18:59
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
А если не секрет - какой период у функции Exp(-Q_old)*(Exp(-Q_old)-1)?
Не секрет. Основной период данной функции чисто комплексный и равен π∙i, где i - мнимая единица.
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8590 / 4436 / 1658
Регистрация: 01.02.2015
Сообщений: 13,761
Записей в блоге: 9
09.03.2015, 19:10
Спасибо. Я, действительно, уже забыл, как дифуры решаются. Там же ещё кроме вынужденных, входит и решение для свободных колебаний (подзабыл правильную терминологию).
0
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
09.03.2015, 20:46  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
В общем смотри. Всё то же самое, только модифицированный метод Эйлера (по схеме прогноз-коррекция). Формулы - на русской странице Wikipedia.
Вывод t,y,y',y'' в файл организуешь самостоятельно - это не сложно.
Все, я программу написал. Все получилось вроде бы правильно. Использовал метод Рунге-Кутты 4 порядка
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8590 / 4436 / 1658
Регистрация: 01.02.2015
Сообщений: 13,761
Записей в блоге: 9
09.03.2015, 20:54
Ну и хорошо.

[не по теме] А ты ещё упоминал gnuplot. Ты графики из командной строки формировал или какая-то GUI-оболочка есть?
0
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
09.03.2015, 21:06  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
[не по теме] А ты ещё упоминал gnuplot. Ты графики из командной строки формировал или какая-то GUI-оболочка есть?
Программа, как я уже говорил, выдавала текстовый файл с 3 столбцами чисел(шаг, Q и V). Я в гнуплоте забивал: plot 'result3.txt' u 1:2 w linesp, 'result3.txt' u 1:3 w linesp. Где: 'result3.txt' - этот файл, u 1:2 - построить график по 1 и 2 стобцу, u 1:3 - по 1 и 3 столбцу, w linesp - чтоб точки графика соединять отрезками. И он сторил графики. А чтоб он мне сразу график в файл выводил я прописывал:
gnuplot > set terminal png size 1366, 768
gnuplot > set output 'graph.png'
gnuplot > plot 'result3.txt' u 1:2 w linesp, 'result3.txt' u 1:3 w linesp
И получается такой вот график наподобии того, что кидал выше
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8590 / 4436 / 1658
Регистрация: 01.02.2015
Сообщений: 13,761
Записей в блоге: 9
09.03.2015, 21:22
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2015, 21:22
Помогаю со студенческими работами здесь

Изобразить область интегрирования на чертеже и изменить порядок интегрирования в повторном интеграле
Поиск по форуму выдал несколько результатов, однако мало что понял и соответственно застрял в маткаде. Буду благодарен за решение задачи.

Построить область интегрирования и изменить порядок интегрирования(Проверить решение)
Все ли верно решено и оформлено? Построить область интегрирования и изменить порядок интегрирования ...

Решение ЛДУ второго порядка методом прогонки
решение лду второго порядка методом прогонки

Изменить порядок интегрирования. Построить область интегрирования и вычислить двойной интеграл двумя способами
Изменить порядок интегрирования. Построить область интегрирования и вычислить двойной интеграл двумя способами

Изменить порядок интегрирования. Область интегрирования изобразить на чертеже
Изменить порядок интегрирования. Область интегрирования изобразить на чертеже


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
Линейное решение нелинейной задачи с помощью арктангенса для метода обработки данных из double buffering.
Hrethgir 10.04.2025
Публикация в доработке, метод арктангенса в комментариях внизу. Вообще изначально я пренебрёг квадратурой числа, но потом понял, что для вычисления приблизительного значения - сгодится, формулу. . .
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер