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

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

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

Мнениеот Гост » 18 Юни 2015, 20:42

Някой може ли да ми помогне за 1ва задача ? :(
Гост
 

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

Мнениеот Malkasi_noslatkasi » 07 Ное 2015, 04:44

Задара, Форум :)

Понеже тази тема е започната, но въпросът, който е поставен, е малко неясен, ще си позволя да премина директно към моя въпрос, или по-точно молба за идеи, ако някой има такава.

Имам следните диференциални уравнения:

[tex]\ddot{x}(t) + x(t).u(t) = 0[/tex]

и

[tex]\dot{x}(t) + \big(x(t)\big)^2 = u(t)[/tex]

Търсим решението за x(t) спрямо u(t), като всички необходими начални условия са налице, а u(t) е напълно произволна функция на аргумента си. Двете уравнения са почти еднакви, след малко математически преобразувания, така че за което и да ми пишете, ще съм много благодарен - просто и двете ми вършат еднакво полезна работа за нещата, които искам да пресметна. На пръв поглед изглеждат лесни и някак си класически, но не мога да се преборя с тях, нито пък Матлабът се справя. Не намирам също така и никакво ръководство в интернет за точно такива дифури.

Благодаря на отзовалите се!

Със здраве, Форум :)
Каквото не ни убива, ни прави по-силни. Каквото ни убива, прави майките ни по-силни.
Аватар
Malkasi_noslatkasi
Нов
 
Мнения: 7
Регистриран на: 19 Юни 2015, 19:58
Рейтинг: 1

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

Мнениеот Anubis » 07 Ное 2015, 18:57

Ако напишеш началните условия, ще мога да реша уравнението ти числено.
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166

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

Мнениеот Malkasi_noslatkasi » 07 Ное 2015, 19:14

Anubis написа:Ако напишеш началните условия, ще мога да реша уравнението ти числено.


Блгодаря, за интереса, анубис.

Вземи [tex]x(t=0)=x_0[/tex] и [tex]\dot{x}(t=0)=\dot{x}_0[/tex] като константи. Подозирам, че е възможно да ти трябват и начални условия за [tex]u(t=0)=u_0[/tex], за [tex]\dot{u}(t=0)=\dot{u}_0[/tex] и така нататък.

Няма да крия, че ако покажеш как точно се решава това уравнение, ще ми направиш голяма услуга, защото не съм математик и нямам представа как ще стане.

Поздрави
Каквото не ни убива, ни прави по-силни. Каквото ни убива, прави майките ни по-силни.
Аватар
Malkasi_noslatkasi
Нов
 
Мнения: 7
Регистриран на: 19 Юни 2015, 19:58
Рейтинг: 1

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

Мнениеот Anubis » 07 Ное 2015, 22:05

Построяваме диференчна схема с втори ред на точност върху равномерна мрежа по следния начин:
[tex]\begin{cases} y_{i+1}=-h^2y_{i}f_{i}+2y_{i}-y_{i-1}, \, i=1, \, 2, \, \dots, \, N-1 \\ y_{0}=\alpha_{1}, \, y_{1}=y_{0}-\frac{h^2}{2}y_{0}f_{0}+\alpha_{2} \end{cases}[/tex].

Тук с [tex]y, \, f[/tex] съм означил мрежовите аналози съответно на търсеното решение [tex]x(t)[/tex] и на функцията [tex]u(t)[/tex]. Началното условие на Дирихле се апроксимира точно, а условието на Нойман е с грешка [tex]O(h^2)[/tex].

Избираме [tex]\alpha_{1}=0.5, \, \alpha_{2}=0, \, u(t)=t^2, \, t \in [0; \, 3][/tex] и стъпка на мрежата [tex]h=0.03[/tex]. В средата на Matlab създаваме следния скриптов файл.
nonlinOrd.m
Код: Избери целия код
clear all
clc
tic
%===================================
% ЗАДАВАНЕ НА МРЕЖАТА
%===================================
x0 = 0; xend = 3; h = (xend-x0)/100;
x = x0 : h : xend;
N = length(x);
y = zeros(1,N);
%===================================
% ФУНКЦИЯТА f(t)
%===================================
f = inline('t^2');
%===================================
% НАЧАЛНИ УСЛОВИЯ
%===================================
alpha1 = 0.5;
alpha2 = 0;
y(1) = alpha1;
y(2) = y(1)- h^2 / 2 * y(1) * ...
    f(x(1)) + alpha2;
%===================================
% ПРЕСМЯТАНЕ НА РЕШЕНИЕТО ЧРЕЗ 
% ДИФЕРЕНЧНА СХЕМА С ЛОКАЛНА ГРЕШКА НА
% АПРОКСИМАЦИЯТА O(h^2)
%===================================
for i = 2 : N-1
    y(i+1) = -h^2 * y(i) * f(x(i)) + ...
        2 * y(i) - y(i-1);
end
%===================================
% НАМИРАНЕ НА ТОЧНОТО РЕШЕНИЕ
%===================================
sol = dsolve('D2u+u*t^2=0','u(0)=alpha1,Du(0)=alpha2');
sol1 = subs(sol,'alpha1',alpha1);
sol2 = subs(sol1,'alpha2',alpha2);
tt = x;
solExact = subs(sol2,'t',tt);
%===================================
% ЧЕРТЕЖ НА РЕШЕНИЯТА
%===================================
plot(x,y,'b','LineWidth',3)
hold on
grid on
plot(tt,solExact,'g--','LineWidth',3)
set(gca,'FontName','Times','FontSize',12)
xlabel('$$ t \in [0; \, 3] $$','interpreter','latex')
ylabel('$$ x(t) $$','interpreter','latex')
legend('\it{Approximated}','\it{Exact}')
title('\it{Nonlinear second-ordered ODE}')
toc

Резултатите са изобразени на чертежа. Грешката е от порядъка на [tex]0.0001=O(h^2)[/tex]. Разбира се, ти пробвай с различни формули за явния вид на функцията [tex]u(t)[/tex]. Имай предвид, че в Matlab почти не може да се намери явно решение на такъв тип диференциални уравнения, но в Mathematica може.
Прикачени файлове
nonlinPic.png
nonlinPic.png (13.32 KiB) Прегледано 809 пъти
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166

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

Мнениеот Anubis » 07 Ное 2015, 22:16

[tex]u(t)=1-2t, \, \alpha_{1}=2, \, \alpha_{2}=0[/tex]
Прикачени файлове
nonlinPic1.png
nonlinPic1.png (12.2 KiB) Прегледано 809 пъти
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166

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

Мнениеот Malkasi_noslatkasi » 08 Ное 2015, 00:11

Благодаря ти, анубис, давам ти палец нагоре. Ще се помъча да намеря и аналитично решение, защото ще работя още по тези уравнения в бъдеще.
Каквото не ни убива, ни прави по-силни. Каквото ни убива, прави майките ни по-силни.
Аватар
Malkasi_noslatkasi
Нов
 
Мнения: 7
Регистриран на: 19 Юни 2015, 19:58
Рейтинг: 1

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

Мнениеот Malkasi_noslatkasi » 06 Дек 2015, 15:11

Здравейте, Форум,

Разглеждайки уравнението, [tex]\dot{x}+x^2=u(t)[/tex], когато положите [tex]u(t)[/tex] като [tex]t^{w(t)}[/tex], където [tex]w(t)=log_tu(t)[/tex], Матлаб успешно решава задачата:

[tex]\dot{x}+x^2=t^{w(t)}[/tex]

Код: Избери целия код
pretty(dsolve('Dx+x^2=t^(w(t))','x(0)=x0','t'))


Решението е невероятно дълго и не смятам да го публикувам. Проблемът е, че решението е съвкупност от няколко функфии на Бесел, винаги умножени по коефициент [tex]z[/tex]. Има ли тук някой, който да е нясно с уравненията на Бесел и какво е това [tex]z[/tex], как мога да го намеря или е произволна стойност?

Благодаря на всекиго, който желае да отговори!
Каквото не ни убива, ни прави по-силни. Каквото ни убива, прави майките ни по-силни.
Аватар
Malkasi_noslatkasi
Нов
 
Мнения: 7
Регистриран на: 19 Юни 2015, 19:58
Рейтинг: 1


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



Кой е на линия

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

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