построение графика по точкам по численному решению д.у.

Форум пользователей пакета Maple

Модератор: Admin

tasha
Сообщения: 101
Зарегистрирован: Пт окт 27, 2006 7:00 pm

построение графика по точкам по численному решению д.у.

Сообщение tasha » Пн мар 26, 2007 7:40 am

График численного решения д.у., как известно, может быть получен при помощи odeplot-функции.
restart;x:=((1/2)*(1-1/2)^(1/2)*cos(f))/(1-(1/2)*(cos(f))^2)^(1/2):
> y:=((1/2)*(1-1/2)^(1/2)*sin(f))/(1-(1/2)*(cos(f))^2)^(1/2):
> z:=r:
> G1:=(diff(x,f))^2+(diff(y,f))^2+(diff(z,f))^2:
> simplify(G1):
> E:=(diff(x,r))^2+(diff(y,r))^2+(diff(z,r))^2:
> F:=diff(x,r)*diff(x,f)+diff(y,r)*diff(y,f)+diff(z,r)*diff(z,f):
> B:=diff(G1,f):
> B1:=simplify(B):
> B2:=B1/(2*G1):
> B0:=simplify(B2):
> ODE1:={diff(r(f),f$2)-(B*diff(r(f),f))/(2*G1)-(1/2)*B1,r(1) = 1, D(r)(1) = 1.2}:
> D1:=dsolve(ODE1,r(f),type=numeric,method=classical);

D1 := proc(x_classical) ... end proc

> D2:=map(D1,[2,2.1,2.2,3,3.1,3.2]):
> with(plots):odeplot(D1,[f,r(f)],1..5);

А можно ли, результаты численного интегрирования, перевести вышепредложенными формулами x,y,z и построить кривую. Код с использованием
T2:=[x[r,f],y[r,f],z[r,f]]:c2:=plots[spacecurve](T2,axes=box,thickness=2,color=blue):
>
> plots[display](c2,scaling=constrained, style=patch);
выдает пустую координатную сетку.

Irmantas
Сообщения: 589
Зарегистрирован: Ср апр 27, 2005 8:49 pm
Откуда: Литва, Каунас

Re: построение графика по точкам по численному решению д.у.

Сообщение Irmantas » Пн мар 26, 2007 12:26 pm

Просто зделайте так:
D1:=dsolve(ODE1,r(f),type=numeric,method=classical, output=listprocedure);

R:=eval(r(f),D1): R(1.5);
RD:=eval(diff(r(f),f),D1): RD(1.5);

with(plots):odeplot(D1,[f,r(f)],1..5):
# z=r ==> z=R(f)
spacecurve([x,y,R(f)],f=1..3,axes=box,thickness=2,color=blue,scaling=constrained, style=patch);

tasha
Сообщения: 101
Зарегистрирован: Пт окт 27, 2006 7:00 pm

построение графика по точкам по численному решению д.у.

Сообщение tasha » Пн мар 26, 2007 1:04 pm

Сразу получилось, спасибо большое!!!!!!!!!! Только вопрос: что означает эта процедура # z=r ==> z=R(f) ? И еще вопрос, если можно, что Вы посоветуете почитать по данному пакету? Я пользуюсь В.Аладьев, М. Богдявичус "Maple 6" - тяжеловато для начинающего, хотя полезного много - приложения и др.
Per aspera ad astra - Через тернии к звездам. (Сенека)

Полищук Андрей
Сообщения: 55
Зарегистрирован: Чт ноя 09, 2006 2:40 pm
Откуда: Ижевск

Сообщение Полищук Андрей » Сб мар 31, 2007 8:17 pm

Это комментарий.
Все, что расположено в строке после "решетки" <#> является комментарием и не выполняется, как в программировании, например в Delphi // и т.д.