Міністерство освіти І науки україни полтавський державний педагогічний університет




Сторінка22/34
Дата конвертації02.12.2016
Розмір5.09 Kb.
1   ...   18   19   20   21   22   23   24   25   ...   34

Звітна наукова конференція викладачів, аспірантів, магістрантів і студентів фізико-математичного факультету
195
> х
# уводимо досліджуване рівняннях) Для дослідження симетрії рівняння (1), згідно підходу Лі, умову інваріантності запишемо у вигляді
2 2
2 2
2 2
3 2
3 0
x
tt
x
u
u
u
u
x
u
X
u
u
x
  










W
, де
2
X – друге продовження інфінітезимального оператора








1 3
1 2
3 1
2 1
2 1
2 1
2
, , ,
, , ,
, , ,
, , ,
t
x
x
u
X
t x x u
t x x u
t x x u
t x x u





 
 
 

Для отримання системи визначальних рівнянь скористаємося командою
> DetSys:=DeterminingPDE(PDE);
матимемо Координати вектора


1 знаходимо розв’язуючи систему диференціальних рівнянь
DetSys
за допомогою команди
pdsolve
або команди
> Infinitesimals(PDE, split = false);
одержимо:
> pdsolve(DetSys);
Отримані формули визначають уданому випадку симетрію рівняння
(1) – конформну алгебру
 
1;1
AC
. Базис алгебри визначаємо так
> G:=Infinitesimals(PDE, displayfunctionality =
false);
Знаходимо перетворення, які дозволяють скоротити кількість незалежних змінних диференціального рівняння (1), що допускає вищезазначені симетрії.


Полтавський державний педагогічний університет імені В.Г. Короленка, 15 травня 2008 р.

196
> InvariantTransformation([G], u(t,х1,х2), v(r,s1,s2));
Команда Maple
InvariantSolutions(PDE)
є єдиною командою, яка за один крок редукує рівняння (1) до диференціального рівняння з однією незалежною змінною. Це досягається завдяки одночасному використанні цілої групи симетрії.
> InvariantSolutions(PDE);
Аналогічно проводиться дослідження симетрії систем диференціальних рівнянь у частинних похідних та її застосування до пошуку точних роз’язків:
> U, V := diff_table(u(x,t)), diff_table(v(x,t)):
> e1:=U[t]+1/2*U[x]^2=0; e2:=V[t]+diff(V[]*U[x],x)=0;
> PDESYS:=[e1,e2]: G:=Infinitesimals(PDESYS, DepVars);
Інваріанти знаходимо так
> Invariants(G[5], DepVars);
Використовуючи команду
SimilarityTransformation
знаходимо прямі та зворотні перетворення, що дозволяють скоротити на одну кількість незалежних змінних
PDESYS
> NewVars := [f,g](r,s); SimilarityTransformation(G[5],
DepVars, NewVars);
На основі процесорного методу можна також досліджувати умовні симетрії диференціальних рівнянь у частинних похідних, адже у такому разі задачі зводитимуться до дослідження симетрій систем диференціальних рівнянь.


Звітна наукова конференція викладачів, аспірантів, магістрантів і студентів фізико-математичного факультету
197
Програмування задач вищої математики у пакеті Maple
Юрій Подошвелев, Олександр Сколота, Микола Богатчук
Як відомо, пакет Maple здатний розв’язувати велику кількість, насамперед, математично орієнтованих задач взагалі без програмування в загальноприйнятому змісті. Цілком можна обмежитися лише описом алгоритму розв’язання задачі, розбитого на окремі послідовні етапи, для яких Maple має вже готові розв’язки. При цьому, пакет Maple має у своєму розпорядженні великий набір процедурі функцій, що дозволяють безпосередньо розв’язувати зовсім нетривіальні задачі. Про численні додатки Maple у вигляді так званих пакетів спеціального призначення і говорити не приходиться. Проте, це зовсім не означає, що Maple не допускає програмування. Маючи власну досить розвинуту мову програмування (мова, пакет дозволяє програмувати у своєму середовищі найрізноманітніші задачі з різних розділів математики. Синтаксис мови успадковує багато рис таких відомих мов програмування як С, Fortran, Basіс і Pascal. Тому користувачам, зокрема, студентам фізико-математичного та природничого (спеціальність Хімія та основи інформатики) факультетів, у тій або іншій мірі знайомим як із цими мовами, такі з програмуванням взагалі, нескладно буде освоїти й мову. Тим більше, пакет надає можливість перекодування програм із мови на C, Java, Fortran, MatLab і VіsualBasіc, а також досить ефективно підтримує інтерфейс із відомим пакетом MatLab. Оскільки мова є одночасно й мовою реалізації пакету, то її освоєння й практичне програмування у середовищі дозволять не тільки істотно підвищити рівень використання можливостей, що надаються пакетом, алей глибше зрозуміти як ідеологію, такі внутрішню структуру самого пакету. Освоївши відносно просту, але досить ефективну Maple- мову, користувач зможе змінювати вже існуючі процедури або розширювати пакет новими, орієнтованими на розв’язання потрібних йому задач. Ці процедури можна включати водну або декілька бібліотек користувача, забезпечити довідковою базою, логічно з’єднати з головною бібліотекою пакету. Для викладачів програмування в Maple може значно спростити розробку та перевірку індивідуальних завдань із вищої математики, а для студентів їх виконання. Наприклад, однією з найбільш трудомістких тем курсу математичного аналізує тема Повного дослідження функції та побудови її графіка. При дослідженні функції на екстремум стандартними командами
Maple (
maximize(f,x); minimize(f,x); extrema(f,x);)
виникають проблеми видають тільки значення функції в точках максимуму й мінімуму не


Полтавський державний педагогічний університет імені В.Г. Короленка, 15 травня 2008 р.
зазначають координати критичних точок, що не є точками екстремуму. Аналогічні проблеми виникають при дослідженні функції на опуклість. Тому виникає необхідність створення програм аналітичного самотестування зданої теми. Нижче наводиться програма для повного дослідження функції та результати її виконання для функції
4 3
2 1
23 12 2
2
y
x
x
x
x




>
restart: with(LinearAlgebra): with(linalg):
>
funcresearch:=
proc
(g)
local
d, dy, df, d2f, delta, i, j, J_1, J_2, k, k1,KT, KT1, m, m1, m2, m3, Ma,
Mi,n, Ne,

NTP, F, H, H1, P, P1, P2, SX, SX1, SX2, SY, SY1, SY2, T, TP, TPx1, TPx2,
TPy1,

TPy2, x_1, x_2, y, y_1, y_2, X, X1, X_1, X_2, XN, XV, Y, Y1, Y_1, Y_2, YN,
YV:

F:=(x)
g: y:=(x)F(x):
: ( )
( ( ), ) :
dy
x diff y x x

: {
( ( ) 0, )}:
X
solve dy x
x



:
(
( ) ):
n Dimension op X


print('Кількість точок, підозрілих на
екстремум', n);
5
:
(1,0,[]) :
1:
(1,0,[]) :
:
(1,0,[]) :
1:
(1,0,[]) :
2 :
(1,0,[]) :
2 :
(1,0,[]) :
: 10 :
SY
matrix
SY
matrix
SX
matrix
SX
matrix
SX
matrix
SY
matrix
delta








for
i
from
1
to
n
do
[ ] :
(
(
[ ], ( )));
Y i
simplify subs x
X i F x


od
:
for
i
from
1
to
n
do
:
( ( ), ); _1:
( [ ]-
) : _ 2:
( [ ]
) :
df
diff y x x x
evalf X i delta x
evalf X i
delta





_1:
(
(
_1,
( ))) : _ 2 :
(
(
_ 2,
( ))) :
y
evalf subs x x
df x
y
evalf subs x x
df x





if
y_1 < 0
and
y_2 > 0
then
SY:=extend(SY,0,1,Y[i]);
SX:=extend(SX,0,1,X[i]);

print('x'[i]=X[i] є точкою мінімуму
elif
y_1>0
and
y_2<0
then
SY1:=extend(SY1,0,1,Y[i]);
SX1:=extend(SX1,0,1,X[i]);

print('x'[i]=X[i] є точкою максимуму
else
SY2:=extend(SY2,0,1,Y[i]); SX2:=extend(SX2,0,1,X[i]);

print('x'[i]=X[i] не є точкою екстремуму);
fi
;
od
:
SY:=extend(SY,0,0,1):
SX:=extend(SX,0,0,1):SX1:=extend(SX1,0,0,1):SX2:=extend(SX2,0,0,1):SY1:=extend
(SY1,0,0,1):
SY2:=extend(SY2,0,0,1): m1:=Dimension(<op(SY)>): print('Число мінімумів',
m1);
m2:=Dimension(<op(SY1)>): print('Число максимумів', m2); m3:=Dimension(<
op(SY2) >):
print('Число точок, що не є екстремальними', m3); i:=1:
for
j
from
1
to
m1
do
[SX[i,j], SY[i,j]];
od
:
Mi:={seq([SX[i,j],SY[i,j]],j=1..m1)}: print('Координати мін', Mi);


Звітна наукова конференція викладачів, аспірантів, магістрантів і студентів фізико-математичного факультету
199
f
or
j
from
1
to
m2
do
[SX1[i,j],SY1[i,j]];
od
:
Ma:={seq([evalf(SX1[i,j]), evalf(SY1[i,j])],j=1..m2) }: print('Координати макс',
Ma);
for
j
from
1
to
m3
do
[SX2[i,j], SY2[i,j]];
od
: Ne:= {seq([evalf(SX2[i,j]),
evalf(SY2[i,j])], j =1..m3)}: print('Координати точок, що не є
екстремальними',Ne); KT:= {seq([op(Mi[i]),'мінімум'], i=1..m1)}: KT1:=
{seq([op(Ma[i]),'максимум'], i=1..m2)}:
for
i
from
1
to
n
do
Y[i]:=simplify(subs(x=X[i],F(x)));
od
: J_1:=seq(Y[i],
i=1..n):
Y_1:=evalf(max(J_1)): Y_2:=evalf(min(J_1)):J_2:=seq(X[i], i=1..n):
X_1:=evalf(max(J_2)): X_2:=evalf(min(J_2)):
if
X_1 < 0
then
XV:=evalf(X_1/1.2):
elif
X_1 > 0
then
XV:=evalf(1.2
X_1):
else
XV:=1:
fi
:
if
X_2 > 0
then
XN:=evalf(X_2/1.2):
elif
X_2=0
then
XN:= -1:
else

XN:=evalf(1.2
X_2):
fi
:
if
Y_1 < 0
then
YV:=evalf(Y_1/1.2):
elif
Y_1 > 0
then
YV:=evalf(1.2
Y_1):
else
YV:=1:
fi
:
if
Y_2 > 0
then
YN:=evalf(Y_2/1.2):
elif
Y_2 < 0
then
YN:=evalf(1.2
Y_2):
else
YN:= -1:
fi
: d2f:=(x)
diff(y(x),x$2): TPx1:=matrix(1,0,[]):
TPx2:=matrix(1,0,[]): TPy1:=matrix(1,0,[]): TPy2:=matrix(1,0,[]):
X1:={solve(d2f(x)=0,x)}:
m:=Dimension(< op(X1) >): print('Число точок, підозрілих на точки
перегину', m);
for
i
from
1
to
m
do
Y1[i]:=evalf(subs(x=X1[i],F(x)));
od
:
print('функція ввігнута', (solve(diff(y(x),x$2) > 0,x)));
print('функція випукла', (solve(diff(y(x),x$2) < 0,x))); delta:=0.0001: TP:= ([]):
if
m=1
then
x_1:=evalf(X1[1]+delta); x_2:=evalf(X1[1]-delta);
y_1:=evalf(subs(x=x_1,d2f(x)));

y_2:=evalf(snbs(x=x_2,d2f(x))); d:=simplify(evalf(y_1
y_2));
if
d < 0
then
print('x'[i]=X1[i] є точкою перегину); TP:=
([X1[1],Y1[1]]):
else
print('x'[i]=X1[i] не є точкою перегину);
fi
;
P:=plots[pointplot](Ma,symbol=CIRCLE,symbolsize=18,color=red,
legend='Toчки максимуму'):
P1:=plots[pointplot](Mi,symbol=CIRCLE,symbolsize=18,
color=COLOR(RGB, 0.4960, 0.0000, 0.8000), legend='Точки мінімуму'):
P2:=plots[pointplot](TP,symbol=DIAMOND,symbolsize=18,color=blue,
legend='Toчки перегину'): T:=plot (F(x) ,x=XN..XV,F=YN..YV,color=black):
H:=plots[textplot](KT, align= {BELOW, RIGHT}):
H1:=plots[textplot](KT1,align= {ABOVE,RIGHT}):
plots[display](T,P,P1,P2,H,H1);


Полтавський державний педагогічний університет імені В.Г. Короленка, 15 травня 2008 р.

200
elif
m=0
then
P:=plots[pointplot](Ma,symbol=CIRCLE,symbolsize=18,color=red,
legend='Точки максимуму'):
P1:=plots[pointplot](Mi,symbol=CIRCLE,symbolsize=18, color=COLOR(RGB,
0.4960, 0.0000, 0.8000), legend='Точки мінімуму'):
P2:=plots[pointplot](TP,symbol=DIAMOND,symbolsize=18,color=blue,
legend='Toчки перегину'): T:=plot (F(x),x=XN..XV,F=YN..YV,color=black):
H:=plots[textplot](KT,align= {BELOW,RIGHT}):
H1:=plots[textplot](KT1,align= {ABOVE,RIGHT}):
plots[display](T,P,P1,H,H1);
else
for
i
from
1
to
m
do
x_1:=evalf(X1[i]+delta); x_2:=evalf(X1[i]-delta);

y_1:=evalf(subs(x=x_1,d2f(x))); y_2:=evalf(subs(x=x_2,d2f(x)));

if
(y_1
y_2) < 0
then
TPx1:=extend(TPx1,0,1,X1[i]);

TPy1:=extend(TPy1,0,1,Y1[i]); print('х'[i]=X1[i] є точкою
перегину);

else
TPx2:=extend(TPx2,0,1,X1[i]);
TPy2:=extend(TPy2,0,1,Y1[i]);

print('x'[i]=X1[i] не є точкою nepeгину);
fi
;
od
;

TPx1:=extend(TPx1,0,0,1); TPx2:=extend(TPx2,0,0,1);

TPy1:=extend(TPy1,0,0,1); TPy2:=extend(TPy2,0,0,1);

k:=Dimension(< op(TPx1) >): k1:=Dimension(< op(TPx2) >):

print('Число точок перегину', k);

print('Число точок, що не є точками перегину', k1); i:= 1:
for
j
from
1
to
k
do
[TPx1[i,j],TPy1[i,j]]:
od
: TP:= seq([evalf(TPx1[i,j]),
evalf(TPy1[i,j])],j=1..k)}:
print('координати точок перегину',TP);
for
j
from
1
to
k1
do
[TPx2[i,j],TPy2[i,j]]:
od
:
NTP:= { seq([evalf(TPx2[i,j]),evalf(TPy2[i,j])],j=1.. k1)};
print('Координати точок, що не є точками перегину',NTP):

P:=plots[pointplot](Ma,symbol=CIRCLE,symbolsize=18,color=red,
legend='Toчки максимуму'):
P1:=plots[pointplot](Mi,symbol=CIRCLE,symbolsize=18, color=COLOR(RGB,
0.4960, 0.0000, 0.8000), legend='Точки мінімуму'):
P2:=plots[pointplot](TP,symbol=DIAMOND,symbolsize=18,color=blue,
legend='Toчки перегину'):

T:=plot(F(x),x=XN..XV,F=YN..YV,color=black,legend='Гpaфік функції'):
H:=plots[textplot](KT,align= {BELOW,RIGHT}):
H1:=plots[textplot](KT1,align= {ABOVE,RIGHT}):
plots[display](T,P,P1,P2,H,H1):
fi
: plots[display](T,P,P1,P2,H,H1);
end
proc
:
>
4 3
2 1
23 12 ;
2 2
funcresearch
x
x
x
x










Кількість точок, підозрілих на екстремум, 3


Звітна наукова конференція викладачів, аспірантів, магістрантів і студентів фізико-математичного факультету
201 1
3 є точкою мінімуму
х
 
2 4 є точкою мінімуму
х

3 є точкою максимуму
2
х

Число мінімумів, 2. Число максимумів Число точок, що не є екстремальними, 0

 Координати мін, 72 , 4, Координати макс, 0.5, Координати точок, що не є екстремальними
Число точок підозрілих на точки перегину, 2 1 7 1 7
,
,
3 ,
3 ,
2 6 2 6
функція ввігнута RealRange
Open
RealRange Open




























1 7 1 7
,
3 ,
3 2 6 2 6
функція випукла RealRange Open
Open




















1 2
1 7 1 7 3 є точкою перегину є точкою перегину 6 2 6
х
х
 
 
Число точок перегину, 2 Число точок, що не є точками перегину, 0

Координати точок перегину, 38.65 , 1.52, Координати точок, що не є точками перегину Програма побудована таким чином, щоб студент (школяр) міг би проконтролювати своє власне рішення. Більше повне втілення ідеї аналітичного тестування можна здійснити в пакеті Maple за допомогою процедури створення власних бібліотек.

Література
1. Аладьев В.З. Программирование и разработка приложений в Maple: Монография /
В.З. Аладьев, В.К. Бойко, Е.А. Ровба. – Гродно ГрГУ; Таллинн: Межд. Акад.
Ноосферы, Балт. отд. – 2007. – 458 с.


Полтавський державний педагогічний університет імені В.Г. Короленка, 15 травня 2008 р.

202
Розробка електронного лабораторного практикуму
з курсу Чисельні методи
Оксана Риженко
Вивчення курсу Чисельні методи [1–3] студентами фізико- математичного факультету передбачає лабораторний практикум, основною метою якого є застосування ряду наближених методів для розв’язування конкретних задач. Досвід проведення лабораторних занять засвідчує необхідність у використанні довідкової інформації теоретичного та практичного характеру. Постала задача створення електронного лабораторного практикуму, який би містив оптимальний обсяг необхідного для засвоєння теоретичного матеріалу, опис алгоритмів наближених методів, що вивчаються, приклади розв’язування задач та спеціальний їх підбір для самостійного виконання. При створенні електронних довідкових систему наш час використовують технологію гіпертексту. Так називається текст, в який включені інтерактивні посилання на інші документи. За їх допомогою читач, вказавши на яке-небудь слово чи фразу, отримує відповідну додаткову інформацію. Це дозволяє читачеві переміщуватися між темами майже у довільному порядку. Можливі переходи визначаються навігаційною структурою документу, запропонованою його автором. В наш час існує багато програм, за допомогою яких можна створювати електронні довідники (наприклад, Microsoft Help Workshop,
Microsoft HTML Help, Win Help 200, Help Scribble, AnetHelp Tool, Help And
Manual i Mif2Go) [4]. Для розробки електронного лабораторного практикуму було обрано Microsoft HTML Help. Цей формат підтримується операційною системою Windows, може вважатися стандартним і практично не потребує додаткового вивчення збоку користувача. З іншого боку він дозволяє застосовувати при створенні довідника практично всі можливості мови HTML. Але є один недолік – засіб перегляду довідника в форматі HTML Help базується на компонентах Інтернет – браузера Internet
Explorer версії 4 і вище. Відсутність на комп’ютері користувача вказаного програмного засобу не дозволяє працювати з довідником. І все ж таки формат HTML Help можна на сьогоднішній день вважати найбільш розповсюдженим форматом довідників для новостворюваних Windows- додатків. За функціональними характеристиками створюваний електронний практикум повинен відповідати таким вимогам 1) відкритість – посібник розробляється як відкрита система, що дозволяє доповнювати його новими розділами чи вносити необхідні зміни 2) дружній інтерфейс, що дозволяє



Поділіться з Вашими друзьями:
1   ...   18   19   20   21   22   23   24   25   ...   34


База даних захищена авторським правом ©divovo.in.ua 2017
звернутися до адміністрації

войти | регистрация
    Головна сторінка


загрузить материал