Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Конечно-разностный метод


Автор: Viktoria12 26.5.2015, 13:25
Помогите пожалуйста. Надо написать программу, которая решает краевую задачу для ОДУ: y'' - xy' - y=0; y(0)=0,
y'(1)+2y(1)=0; 0<x<1; шаг h=0.2. Очень прошу помощи! Ни как не могу написать.

Автор: rudolfninja 26.5.2015, 13:57
Покажите ваш код, попробуем понять что у вас не получается и почему не работает.

Автор: Viktoria12 26.5.2015, 15:48
y'' - xy' - y=0 не могу правильно описать. Как функцию правильно описать?

Автор: baldina 26.5.2015, 17:07
описать дело нехитрое, каким методом решать будете?
если произвеcти замену z=y', то получится система 
z'=xz+y=f(x,y,z)
y'=z=g(x,y,z)

эти функции на С++ можно задать, например, так:
Код

double f(double x, double y, double z) {
  return x*y+z;
}

double g(double x, double y, double z) {
  return z;
}


осталось найти y'(0)=z(0), и будем иметь задачу коши для системы уравнений, которую можно решить, например, методом рунге-кутты. 

Автор: Viktoria12 27.5.2015, 11:47
y'' = (Y(k+1)-2Yk+Y(k-1))h^2
y' = (Y(k+1)-Y(k-1))/2h (так нужно заменить мои производные)
в итоге получаем:

(Y(k+1)-2Yk+Y(k-1))/h^2 + Xk((Y(k+1)-Y(k-1))/2h) + 1 = 0

помогите описать пожалуйста.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)