Прочее образование

Вычислительная математика. Помогите решить задачу методом КОШИ.

Это неоднородное ЛОДУ прекрасно решается аналитически. Вот его общее решение: y=х+1+c•exp(x).
Для решения задачи Коши надо начальные данные подставить в общее решение: 5,5+c•exp(4,5)=1. Коэффициент c при этом окажется равным с=-4,5•exp(-4,5), так что решением задачи Коши является функция y=x+1-4,5•exp(x-4,5).
Никакого метода Коши решения диффуравнений в вычислительной математике не существует. Чтобы решить это уравнение численно надо нормально указать интервал, в котором ищется решение, и выбрать более-менее нормальный численный метод. Вот пример узлового решения на C++ этого
уравнения в промежутке [0;4,5] одним из самых примитивных методов (слегка модифицированным методом Эйлера) с контролем точности:
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
double f(double x, double y)
{ return y - x; }
double Y(double x)
{ return x + 1 - 4.5 * exp(x - 4.5); }
int main()
{
int i, N;
cout << "N: ";
cin >> N;
double h = 4.5 / N, hp = h / 2, x, u;
double *y = new double [N + 1];
y[N] = 1;
for (i = N; i > 0; i--)
{
x = i * h;
u = y[i];
y[i - 1] = u - h * f(x - hp, u - hp * f(x, u));
}
for (i = 0; i <= N; i++)
{
x = i * h;
u = y[i];
cout << setprecision(2) << fixed << setw(4)
<< x << setprecision(15) << fixed << setw(20)
<< u << ", ε=" << fixed << setw(18) << u - Y(x) << endl;
}
system("pause > nul");
return 0;
}
Ильшат Ахматханов
Ильшат Ахматханов
66 572
Лучший ответ