2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Численное решение диф. уравнения в Mathematica
Сообщение12.07.2016, 19:14 
Аватара пользователя


16/11/12
55
В общем у меня задача следующая: найти экстремаль следующего функционала $\int\limits_0^1-\frac{1}{2}(\dot{x(t)}^2+\dot{y(t)}^2+1-2\sqrt{\dot{x(t)}^2+\dot{y(t)}^2})+y(t)\theta(t-(0.5-0.02))\theta(0.5+0.02-t)dt$ где точка - производная по $t$, $\theta$ - функция Хэвисайда. Т.к. в Wolfram mathematica я не спец и не знаю как её способами решать вариационные задачи, то просто пишу уравнения Эйлера-Лагранжа вручную, но проблема в том, что функция NDSolve выдаёт кучу ошибок, может быть вы подскажите, что не так?
Попытался вставить содержимое блокнота как Latex-вставку, получилось криво, но другого способа я не нашёл.
Содержимое блокнота:
$
\begin{doublespace}
\noindent\(\pmb{L=\left(x'[t]^2+y'[t]^2+1-2\sqrt{x'[t]^2+y'[t]^2}\right)}\)
\end{doublespace}

\begin{doublespace}
\noindent\(1+x'[t]^2+y'[t]^2-2 \sqrt{x'[t]^2+y'[t]^2}\)
\end{doublespace}

\begin{doublespace}
\noindent\(\pmb{\text{f1}=y[t]\cdot\text{HeavisideTheta}[t-(\text{t0}-0.02)]\cdot}\\
\pmb{\text{HeavisideTheta}[(\text{t0}+0.02)-t]}\)
\end{doublespace}

\begin{doublespace}
\noindent\(\text{HeavisideTheta}[0.02\, +t-\text{t0}] \text{HeavisideTheta}[0.02\, -t+\text{t0}] y[t]\)
\end{doublespace}

\begin{doublespace}
\noindent\(\pmb{\text{L1}=L+\text{f1}}\)
\end{doublespace}

\begin{doublespace}
\noindent\(1+\text{HeavisideTheta}[0.02\, +t-\text{t0}] \text{HeavisideTheta}[0.02\, -t+\text{t0}] y[t]+x'[t]^2+y'[t]^2-2 \sqrt{x'[t]^2+y'[t]^2}\)
\end{doublespace}

\begin{doublespace}
\noindent\(\pmb{\text{eqn1}=\text{Dt}[D[\text{L1},x'[t]],t]-D[\text{L1},x[t]]}\)
\end{doublespace}

\begin{doublespace}
\noindent\(2 x''[t]-\frac{2 x''[t]}{\sqrt{x'[t]^2+y'[t]^2}}+\frac{x'[t] \left(2 x'[t] x''[t]+2 y'[t] y''[t]\right)}{\left(x'[t]^2+y'[t]^2\right)^{3/2}}\)
\end{doublespace}

\begin{doublespace}
\noindent\(\pmb{\text{eqn2}=\text{Dt}[D[\text{L1},y'[t]],t]-D[\text{L1},y[t]]}\)
\end{doublespace}

\begin{doublespace}
\noindent\(-\text{HeavisideTheta}[0.02\, +t-\text{t0}] \text{HeavisideTheta}[0.02\, -t+\text{t0}]+2 y''[t]-\frac{2 y''[t]}{\sqrt{x'[t]^2+y'[t]^2}}+\frac{y'[t] \left(2 x'[t] x''[t]+2 y'[t] y''[t]\right)}{\left(x'[t]^2+y'[t]^2\right)^{3/2}}\)
\end{doublespace}

\begin{doublespace}
\noindent\(\pmb{\text{cond}=\{x[0]==0,y[0]==0,x[1]==1,y[1]==0\}}\)
\end{doublespace}

\begin{doublespace}
\noindent\(\{x[0]==0,y[0]==0,x[1]==1,y[1]==0\}\)
\end{doublespace}

\begin{doublespace}
\noindent\(\pmb{\text{t0}=0.5}\)
\end{doublespace}

\begin{doublespace}
\noindent\(0.5\)
\end{doublespace}

\begin{doublespace}
\noindent\(\pmb{\text{SLV}=\text{NDSolve}[\{\text{eqn1}==0,\text{eqn2}==0,\text{cond}\},\{x[t],y[t]\},\{t,0,1\}]}\)
\end{doublespace}
$

 Профиль  
                  
 
 Re: Численное решение диф. уравнения в Mathematica
Сообщение12.07.2016, 19:56 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
qwe8013 в сообщении #1137511 писал(а):
Попытался вставить содержимое блокнота как Latex-вставку, получилось криво, но другого способа я не нашёл.
Просто обрамите тегом [code]. И расскажите, пожалуйста, о выдаваемых ошибках.

 Профиль  
                  
 
 Re: Численное решение диф. уравнения в Mathematica
Сообщение12.07.2016, 21:39 
Аватара пользователя


16/11/12
55
Код:
In[8]:= SLV=NDSolve[{eqn1==0,eqn2==0,cond},{x[t],y[t]},{t,0,1}]
During evaluation of In[8]:= Power::infy: Infinite expression 1/Sqrt[0.] encountered. >>
During evaluation of In[8]:= Power::infy: Infinite expression 1/0. encountered. >>
During evaluation of In[8]:= Infinity::indet: Indeterminate expression 0. ComplexInfinity ComplexInfinity encountered. >>
During evaluation of In[8]:= Power::infy: Infinite expression 1/0.^(3/2) encountered. >>
During evaluation of In[8]:= General::stop: Further output of Power::infy will be suppressed during this calculation. >>
During evaluation of In[8]:= Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
During evaluation of In[8]:= Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
During evaluation of In[8]:= General::stop: Further output of Infinity::indet will be suppressed during this calculation. >>
During evaluation of In[8]:= NDSolve::ndnum: Encountered non-numerical value for a derivative at t == 0.`. >>

Я так понимаю, у него проблема с делением на ноль.

 Профиль  
                  
 
 Re: Численное решение диф. уравнения в Mathematica
Сообщение13.07.2016, 00:29 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Aritaborian в сообщении #1137521 писал(а):
Просто обрамите тегом [code].
И с содержимым блокнота сделайте то же самое ;-)

 Профиль  
                  
 
 Re: Численное решение диф. уравнения в Mathematica
Сообщение13.07.2016, 00:39 
Аватара пользователя


16/11/12
55
Код:
In[1]:= L=-1/2 (x'[t]^2+y'[t]^2+1-2Sqrt[x'[t]^2+y'[t]^2])
Out[1]= 1/2 (-1-(x^\[Prime])[t]^2-(y^\[Prime])[t]^2+2 Sqrt[(x^\[Prime])[t]^2+(y^\[Prime])[t]^2])
In[2]:= f1=y[t]*HeavisideTheta[t-(t0-0.02)]*HeavisideTheta[t0+0.02-t]
Out[2]= HeavisideTheta[0.02 +t-t0] HeavisideTheta[0.02 -t+t0] y[t]
In[3]:= L1=L+f1
Out[3]= HeavisideTheta[0.02 +t-t0] HeavisideTheta[0.02 -t+t0] y[t]+1/2 (-1-(x^\[Prime])[t]^2-(y^\[Prime])[t]^2+2 Sqrt[(x^\[Prime])[t]^2+(y^\[Prime])[t]^2])
In[4]:= eqn1=Dt[D[L1,x'[t]],t]-D[L1,x[t]]
Out[4]= 1/2 (-2 (x^\[Prime]\[Prime])[t]+(2 (x^\[Prime]\[Prime])[t])/Sqrt[(x^\[Prime])[t]^2+(y^\[Prime])[t]^2]-((x^\[Prime])[t] (2 (x^\[Prime])[t] (x^\[Prime]\[Prime])[t]+2 (y^\[Prime])[t] (y^\[Prime]\[Prime])[t]))/((x^\[Prime])[t]^2+(y^\[Prime])[t]^2)^(3/2))
In[5]:= eqn2=Dt[D[L1,y'[t]],t]-D[L1,y[t]]
Out[5]= -HeavisideTheta[0.02 +t-t0] HeavisideTheta[0.02 -t+t0]+1/2 (-2 (y^\[Prime]\[Prime])[t]+(2 (y^\[Prime]\[Prime])[t])/Sqrt[(x^\[Prime])[t]^2+(y^\[Prime])[t]^2]-((y^\[Prime])[t] (2 (x^\[Prime])[t] (x^\[Prime]\[Prime])[t]+2 (y^\[Prime])[t] (y^\[Prime]\[Prime])[t]))/((x^\[Prime])[t]^2+(y^\[Prime])[t]^2)^(3/2))
In[6]:= cond={x[0]==0,x[1]==1,y[0]==0,y[1]==0}
Out[6]= {x[0]==0,x[1]==1,y[0]==0,y[1]==0}
In[7]:= t0=0.5
Out[7]= 0.5
In[8]:= SLV=NDSolve[{eqn1==0,eqn2==0,cond},{x[t],y[t]},{t,0,1}]
During evaluation of In[8]:= Power::infy: Infinite expression 1/Sqrt[0.] encountered. >>
During evaluation of In[8]:= Power::infy: Infinite expression 1/0. encountered. >>
During evaluation of In[8]:= Infinity::indet: Indeterminate expression 0. ComplexInfinity ComplexInfinity encountered. >>
During evaluation of In[8]:= Power::infy: Infinite expression 1/0.^(3/2) encountered. >>
During evaluation of In[8]:= General::stop: Further output of Power::infy will be suppressed during this calculation. >>
During evaluation of In[8]:= Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
During evaluation of In[8]:= Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
During evaluation of In[8]:= General::stop: Further output of Infinity::indet will be suppressed during this calculation. >>
During evaluation of In[8]:= NDSolve::ndnum: Encountered non-numerical value for a derivative at t == 0.`. >>
Out[8]= NDSolve[{1/2 (-2 (x^\[Prime]\[Prime])[t]+(2 (x^\[Prime]\[Prime])[t])/Sqrt[(x^\[Prime])[t]^2+(y^\[Prime])[t]^2]-((x^\[Prime])[t] (2 (x^\[Prime])[t] (x^\[Prime]\[Prime])[t]+2 (y^\[Prime])[t] (y^\[Prime]\[Prime])[t]))/((x^\[Prime])[t]^2+(y^\[Prime])[t]^2)^(3/2))==0,-HeavisideTheta[0.52 -t] HeavisideTheta[-0.48+t]+1/2 (-2 (y^\[Prime]\[Prime])[t]+(2 (y^\[Prime]\[Prime])[t])/Sqrt[(x^\[Prime])[t]^2+(y^\[Prime])[t]^2]-((y^\[Prime])[t] (2 (x^\[Prime])[t] (x^\[Prime]\[Prime])[t]+2 (y^\[Prime])[t] (y^\[Prime]\[Prime])[t]))/((x^\[Prime])[t]^2+(y^\[Prime])[t]^2)^(3/2))==0,{x[0]==0,x[1]==1,y[0]==0,y[1]==0}},{x[t],y[t]},{t,0,1}]

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: DariaRychenkova


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group