Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Да се реши уравнението

Да се реши уравнението

Мнениеот aifC » 14 Апр 2018, 21:51

Дадено е:

[tex]y = f(x)[/tex], [tex]\frac{dy}{dx} = x^{-4} + y^{2}[/tex]; и [tex]f\left(\frac{1}{\pi} \right) = -\pi[/tex];

Търси се:

[tex]f \left(\frac{4}{3\pi}\right)[/tex]
На теория няма разлика между теорията и практиката. Но на практика има.
Аватар
aifC
Напреднал
 
Мнения: 364
Регистриран на: 17 Окт 2017, 19:33
Рейтинг: 249

Re: Да се реши уравнението

Мнениеот Anubis » 15 Апр 2018, 09:26

Приближено решение с точност [tex]O(h^4)[/tex] ще ти свърши ли работа?
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166

Re: Да се реши уравнението

Мнениеот aifC » 15 Апр 2018, 09:33

Конкретен отговор се търси.
На теория няма разлика между теорията и практиката. Но на практика има.
Аватар
aifC
Напреднал
 
Мнения: 364
Регистриран на: 17 Окт 2017, 19:33
Рейтинг: 249

Re: Да се реши уравнението

Мнениеот Anubis » 15 Апр 2018, 11:50

Получавам за отговор [tex]\frac{3\pi(3\pi-4)}{16}[/tex].
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166

Re: Да се реши уравнението

Мнениеот Anubis » 15 Апр 2018, 12:34

Правим смяната [tex]\frac{y(x)}{x}=k(x) \Rightarrow y(x) = xk(x) \Rightarrow y' = k + xk'[/tex]. Заместваме в изходното уравнение, решаваме относно производната [tex]k'[/tex] и получаваме задачата на Коши

[tex]\begin{array}{|l} k' = xk^2 - \dfrac{1}{x}k + \dfrac{1}{x^5} \\ k \left ( \dfrac{1}{\pi} \right ) = -\pi^2 \end{array}[/tex].

Това е уравнение на Рикати, защото е от вида [tex]k' = a(x) k^2 + b(x) k + c(x)[/tex]. Неговото общо решение при така зададеното начално условие е [tex]k(x) = -\frac{i-ie^{\dfrac{2i}{x}}+x+xe^{\dfrac{2i}{x}}}{\left ( 1 + e^{\dfrac{2i}{x}} \right ) x^3}[/tex]. Тогава [tex]y(x) = xk(x) \Rightarrow y \left ( \frac{4}{3\pi} \right ) = \frac{3\pi(3\pi-4)}{16}[/tex].

Резултатът може да бъде потвърден и от приближеното решаване на уравнението например с 4-етапния метод на Рунге-Кута. За целта използваме следния код на Matlab:
Код: Избери целия код
clear all
clc
% Right side of the equation
f = @(x,y) x.^(-4) + y.^2;
init = -pi;
a = 1/pi; b = 4/(3*pi);
% Numerical solutin
sol = ode45(f,[a,b],init);
xx = linspace(a,b,100);
yy = deval(sol,xx);
% Values at 4/(3*pi)
exact = 3*pi*(3*pi-4)/16;
approx = yy(end);
abs_error = abs(exact-approx);
display('Difference between the values at 4/(3*pi): ')
display(abs_error)
% Exact & numerical solution
numer = i - i * exp(2*i./xx) + ...
    xx + exp(2*i./xx) .* xx;
denom = (1 + exp(2*i./xx)) .* xx.^3;
uu = -xx .* numer ./ denom;
% Absolute error of the method
err = abs(yy-uu);
display('Max. absolute error: ')
display(max(err))
% Plot the solutions
figure(1)
%%%
subplot(1,2,1)
%%%
plot(xx,yy,'b','LineWidth',3)
hold on, grid on
plot(xx,uu,'g--','LineWidth',3)
set(gca,'FontSize',14)
xlabel('\bf{x}')
ylabel('\bf{y}')
legend('\bf{Approximate}','\bf{Exact}')
axis([min(xx),max(xx),min(yy),max(yy)])
%%%
subplot(1,2,2)
%%%
plot(xx,err,'r:','LineWidth',3)
hold on, grid on
set(gca,'FontSize',14)
xlabel('\bf{x}')
ylabel('\bf{|u-y|}')
legend('\bf{Error}')
axis([min(xx),max(xx),min(err),max(err)])

Истинската стойност с точност до десетия знак след запетаята е [tex]3.1954579854[/tex]. Стойността, получена на база числения метод, е [tex]3.1954579740[/tex]. Разликата между тях е от порядъка на [tex]10^{-8}[/tex].
Прикачени файлове
ode_deval_f.png
ode_deval_f.png (19.27 KiB) Прегледано 415 пъти
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166

Re: Да се реши уравнението

Мнениеот aifC » 15 Апр 2018, 13:24

И аз получих същия отговор, което ще рече че сме работили вярно ! :) Процедирам така :

От субституцията: [tex]y = x^{-2}z[/tex]; уравнението придобива вида: [tex]x^{2}\frac{dz}{dx} - 2xz = 1 + z^{2}[/tex];

Смяната на променливата [tex]t = x^{-1}[/tex] ни дава: [tex]-\frac{dz}{dt} - 2t^{-1}z = 1 + z^{2}[/tex];

Тогава: [tex]z = u - t^{-1} \implies -\frac{du}{dt} = 1 + u^{2}[/tex];

И следователно [tex]tg^{-1}u = -t -c[/tex] за някаква константа [tex]c[/tex] така че:

[tex]u = -tg(t+c)[/tex];
[tex]z = -t^{-1} - tg(t + c) = -x -tg \left(\frac{1}{x} + c \right)[/tex];
[tex]y = -\frac{1}{x} - \frac{1}{x^{2}}tg \left(\frac{1}{x} + c \right)[/tex];

Докато [tex]y \left(\frac{1}{\pi} \right) = -\pi[/tex] стигаме до извода: [tex]tg(\pi + c) = 0[/tex] така че [tex]c = n\pi[/tex] за някакво целочислено [tex]n[/tex]
[tex]\implies y = -\frac{1}{x} - \frac{1}{x^{2}}tg \left(\frac{1}{x} + n\pi \right) = -\frac{1}{x} - \frac{1}{x^{2}}tg \left(\frac{1}{x} \right)[/tex];

Решението е валидно за : [tex]\frac{2}{3\pi} < x < \frac{2}{\pi}[/tex];

Следователно: [tex]y \left(\frac{4}{3\pi} \right) = -\frac{3\pi}{4} -\frac{9\pi^{2}}{16} tg \left(\frac{3\pi}{4} \right) = \frac{9\pi^{2}}{16}-\frac{3\pi}{4} = \boxed{\frac{3\pi}{16}(3\pi - 4)}[/tex];
На теория няма разлика между теорията и практиката. Но на практика има.
Аватар
aifC
Напреднал
 
Мнения: 364
Регистриран на: 17 Окт 2017, 19:33
Рейтинг: 249


Назад към Висша математика



Кой е на линия

Регистрирани потребители: Google Adsense [Bot], Google [Bot]

Форум за математика(архив)