Задачка по численным методам

OLESYA

кому не лень, алгоритм расскажите:
pk'(t)=-c*pk(t)+c*pk-1(t) для k=1,2..
p0'(t)=-c*p0(t k=0
p0(0)=1 pk(0)=0 для k=1,2...
вот спасибо.

zuzaka

так у тебя уже схема записана
p_k(0) известна для любого k
p_k(t+Δt) = p_k(t) + Δt * p'_k(t)
p'_k(t) тебе известна для любого k
что еще нужно?

oleo

Ну это если по явной схеме Эйлера, мб нужно что-нибудь похитрее. точнее задачу формулировать нужно

OLESYA

нужно решение в виде функции P_k(t) как функция от t и k с участием константы c.
в таком рекурентном виде совсем ни к чему.

OLESYA

куда уж точнее, итак все условия есть. это простая задачка из численных методов, самые азы. сам только не помню

griz_a

Вот и рассчитывай:
Пусть надо посчитать P_k(x)
Берешь шаг h=x/N
P_0(m*h)=P_0m-1)*h)+h*P'_0m-1)*h)+O(h^2)=P_0(h*(m-11-c*h)+O(h^2).
h^2 откидываешь, m=1..N-1
P_0(m*h)=(1-c*h)^m
Теперь P_1(m*h)=P_0m-1)*h)+h*P'_0m-1)*h)+O(h^2)=P_0(h*(m-11-c*h)+c*h*P_0m-1)*h)+O(h^2). И т.д.
Так по очереди рассчитываешь P_0(h)..P_0N-1)*hP_1(h)...P_1N-1)*h)..P_k(h)..P_k(N*h)

DarkDimazzz

Так тебе нужно это численно запрограммировать или получить аналитический результат? Если первое, то пример ответа тебе уже дан, если второе, то p_k(t)=(ct)^k*exp(-ct)/k!. Идея решения - реши уравнение для p_0 и затем считай, что p_k можно представить в виде произведения этого решения на некоторую функцию t.

OLESYA

О! именно аналитическое решение. и даже не ответ, а сама схема решения.

griz_a

А причем здесь тогда численные методы

OLESYA

ну может коряво написал конечно. виноват.
а какая область? дифуры? все ж таки ЧМы это не одно только программирование...

griz_a

ну численно-то тебе ничего не надо работать.

OLESYA

ага. просто первое что в голову пришло, то и написал.

railok

очень похоже на дифуры для вероятностей пуассоновскго потока
если сделать замену
pk(t) = exp(-c*t) * sk(t)
то на sk(t) получатся дифуры попроще.

OLESYA

Всем спасибо. Миссия выполнена.
Оставить комментарий
Имя или ник:
Комментарий: