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

Диференциално уравнение

Диференциално уравнение

Мнениеот Scarlet_Wayne » 05 Авг 2013, 18:37

В процеса на решаване на една задача по физика ми се налага да реша следното диференциално уравнение:
[tex]y'+\beta y^{2}=\alpha[/tex]
където [tex]\alpha[/tex] и [tex]\beta[/tex] са константи
Може ли някой да ми обясни как да го реша?
Аватар
Scarlet_Wayne
Нов
 
Мнения: 3
Регистриран на: 05 Авг 2013, 18:30
Рейтинг: 3

Re: Диференциално уравнение

Мнениеот Vulev » 05 Авг 2013, 19:34

[tex]y' = \alpha -\beta y^2[/tex]
[tex]\frac{dy}{dx } = \alpha -\beta y^2[/tex]
[tex]\frac{dy}{\alpha -\beta y^2} = dx[/tex]
[tex]\int_{}^{ } \frac{dy}{\alpha -\beta y^2} = \int_{}^{ } dx[/tex].
За първия интеграл е важен знакът на [tex]\frac{\beta }{\alpha }[/tex]. След преобразувания се докарва до arctg(...) или arctgh(...)
Vulev
Нов
 
Мнения: 68
Регистриран на: 04 Авг 2013, 19:48
Рейтинг: 43

Re: Диференциално уравнение

Мнениеот Anubis » 05 Авг 2013, 20:17

Да, всичко е така, както Vulev е написал. Уравнението е от вида [tex]y' = f(x) g(y)[/tex] със

[tex]f(x)=1, \quad g(y) = \alpha - \beta y^2[/tex], което е с разделящи се променливи. В допълнение ще ти предложа

"компютърния" начин да решиш задачата (който понякога е доста по-важен, ако търсим стойността на

решението в определена точка).

Създаваш файл-функция на Matlab, която ти пресмята дясната част на диференциалното уравнение. В нея

избираш стойностите на [tex]\alpha[/tex] и [tex]\beta[/tex].

Function file: phisic_eq
Код: Избери целия код
function res = phisic_eq(x, y)
a = 0.2; b = 13;
res = a - b * y(1)^2;
end


После само правиш script file, в който задаваш различни начални условия, за да получиш точно една

интегрална линия.

Script file: ph_sol
Код: Избери целия код
whitebg('white')
subplot(2, 2, 1)
[x, y] = ode45('phisic_eq', 0, 10, 1);
plot(x, y, 'g')
grid on
set(gca, 'FontName', 'Times', 'FontSize', 11)
xlabel('$$ Ox $$', 'interpreter', 'latex')
ylabel('$$ Oy $$', 'interpreter', 'latex')
title('$$ y'' = \alpha - \beta y^2 $$', 'interpreter', 'latex')
legend('\it{y}''=\it{a}-\it{b} \it{y}^2')

subplot(2, 2, 2)
[x, y] = ode45('phisic_eq', 3, 8, 2);
plot(x, y, 'b')
grid on
set(gca, 'FontName', 'Times', 'FontSize', 11)
xlabel('$$ Ox $$', 'interpreter', 'latex')
ylabel('$$ Oy $$', 'interpreter', 'latex')
title('$$ y'' = \alpha - \beta y^2 $$', 'interpreter', 'latex')
legend('\it{y}''=\it{a}-\it{b} \it{y}^2')

subplot(2, 2, 3)
[x, y] = ode45('phisic_eq', -4, 4, 0);
plot(x, y, 'm')
grid on
set(gca, 'FontName', 'Times', 'FontSize', 11)
xlabel('$$ Ox $$', 'interpreter', 'latex')
ylabel('$$ Oy $$', 'interpreter', 'latex')
title('$$ y'' = \alpha - \beta y^2 $$', 'interpreter', 'latex')
legend('\it{y}''=\it{a}-\it{b} \it{y}^2')

subplot(2, 2, 4)
[x, y] = ode45('phisic_eq', -1, 12, 0);
plot(x, y, 'c')
grid on
set(gca, 'FontName', 'Times', 'FontSize', 11)
xlabel('$$ Ox $$', 'interpreter', 'latex')
ylabel('$$ Oy $$', 'interpreter', 'latex')
title('$$ y'' = \alpha - \beta y^2 $$', 'interpreter', 'latex')
legend('\it{y}''=\it{a}-\it{b} \it{y}^2')


В командния прозорец на Matlab пишеш името на script file-а и се появява графиката, която съм сложил.
Прикачени файлове
diff_eq_gr.png
diff_eq_gr.png (6.43 KiB) Прегледано 664 пъти
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166


Назад към Диференциални уравнения



Кой е на линия

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

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