2014 dxdy logo

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

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




 
 Построения результатов в Mathematica
Сообщение21.04.2014, 08:10 
Привет, ребята!
Только начал делать первые шаги в этот системе :oops: , но уже возникли трудности. Не могу построить график решения ДУ, стандартные хелпы не помогают. И вообще, не очень понял форму записи решения, что означает 1.v? Спасибо большое за ответы!
Код:

h2 = 0.1
\[Chi] = 0       
v0 = 0.1
sol = DSolve[{V''[v] + (\[Chi] - 2*h2*Cos[2 v])*V[v] == 0 ,V'[v0] == 0, V[\[Pi]/2] == 3}, V[v], v]
{{V[v] -> (0. + 0. I) + (2.95932 + 0. I) MathieuC[0, 0.1,1. v] - (0.751439 + 0. I) MathieuS[0, 0.1, 1. v]}}
Plot[Evaluate[V[v] /. sol], {v, 0, 3}]
ReplaceAll::reps: {sol} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. >>
General::stop: Further output of ReplaceAll::reps will be suppressed during this calculation. >>

 
 
 
 Re: Построения результатов в Mathematica
Сообщение21.04.2014, 09:21 
У меня все строит. Попробуйте перезагрузить ядро.
Чтобы посмотреть внутреннее представление чего-то, в математике есть специальные команды. Но в данном случае достаточно поставить курсор на нужную строчку и нажать Ctrl+Shift+I, чтобы посмотреть Input Form:
Код:
{{V[v] -> 2.9593197110567697*MathieuC[0, 0.1, 1.*v] - 0.7514390626665725*MathieuS[0, 0.1, 1.*v]}}

И вообще, если нужен точный ответ, то параметры надо задавать как рациональные числа, избегая дасятичной точки. Тогда и результат будет точный (если математика его найдет, конечно).
Код:
h2 = 1/10
\[Chi] = 0
v0 = 1/10
sol = DSolve[{V''[v] + (\[Chi] - 2*h2*Cos[2 v])*V[v] == 0,  V'[v0] == 0, V[\[Pi]/2] == 3}, V[v], v][[1,1]]

$$
V(v)\to \frac{3
   \left(\text{MathieuCPrime}\left[0,\frac{1}{10},\frac{1}{10}\right]
   \text{MathieuS}\left[0,\frac{1}{10},v\right]-\text{MathieuSPrime}\left[
   0,\frac{1}{10},\frac{1}{10}\right]
   \text{MathieuC}\left[0,\frac{1}{10},v\right]\right)}{\text{MathieuCPrim
   e}\left[0,\frac{1}{10},\frac{1}{10}\right]
   \text{MathieuS}\left[0,\frac{1}{10},\frac{\pi
   }{2}\right]-\text{MathieuC}\left[0,\frac{1}{10},\frac{\pi }{2}\right]
   \text{MathieuSPrime}\left[0,\frac{1}{10},\frac{1}{10}\right]}
$$

 
 
 
 Re: Построения результатов в Mathematica
Сообщение21.04.2014, 13:38 
Спасибо большое! Перезапустил- работает! А теперь такой вопрос, как мне полученное решение сделать функцией, чтобы я мог из любого места найти ее значение V[v] ?

 
 
 
 Re: Построения результатов в Mathematica
Сообщение21.04.2014, 14:09 
f[v_]=V[v] /. sol[[1]]

 
 
 
 Re: Построения результатов в Mathematica
Сообщение22.04.2014, 18:17 
Vince Diesel в сообщении #852562 писал(а):
f[v_]=V[v] /. sol[[1]]

Вот так ругается
Код:
f[v_] = V[v] /. sol[[1]]
Part::partd: Part specification sol[[1]] is longer than depth of object. >>
ReplaceAll::reps: {sol[[1]]} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. >>

 
 
 
 Re: Построения результатов в Mathematica
Сообщение22.04.2014, 18:28 
Да, не учел, что уже раньше взято был взят первый элемент [[1,1]]. Так работает:
Код:
h2 = 1/10
\[Chi] = 0
v0 = 1/10
sol = DSolve[{V''[v] + (\[Chi] - 2*h2*Cos[2 v])*V[v] == 0,
     V'[v0] == 0, V[\[Pi]/2] == 3}, V[v], v];
f[v_] = V[v] /. sol[[1]]

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group