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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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