Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
restart | Учебники

Записи с меткой «restart»

Движение частицы в магнитном поле

Движение частицы в магнитном поле
От реального мира перейдем к микромиру. Пусть микрочастица массой 9* 10-31 кг и зарядом +1,6*10"19 Кл влетает в магнитное поле с индукцией В = 0,1 Тл под углом а=80°. Рассчитаем траекторию движения частицы при начальной скорости Vo= 1*107м/с:
> restart;
Сила Лоренца, действующая на движущуюся частицу F = q*(E+[v, В]). Проекции векторного произведения [v, В] на оси х, у, z:
[v.B]x=vy*Bz-vz*By   [v,B]y=vz*Bx-vx*Bz   [v,B]z=vx*By-vy*Bz
В соответствии с этим известные из курса физики дифференциальные уравнения, описывающие траекторию полета частицы по осям х, у, z имеют вид:

Зададим исходные числовые данные (опустив размерности):
> q:=-1.6e-19: massa:=9.1e-31: V:=le7: alpha:=80*Pi/180:
> Vx:=V*cos(alpha): Vy:=V*sin(alpha): Ex:=0:Ey:=0:Ez:=0: Bx:=0.1:By:=0: Bz:=0:
Построим траекторию движения частиц в пространстве:
> with(DEtools):DEplot3d({sys},{x(t),y(t),z(t)},t=0..2e-9, [[x(0)=O,D(x)(0)=Vx,y(0)==0,D(y)(0)=Vy,z(0)=0,D(z)(0)=0]], stepsize=le-ll,orientation=[24.117]):
Полученная траектория представлена. Она имеет вид спирали в пространстве. При этом скорость движения частицы вдоль оси х неизменна, а вдоль осей у и z имеет характерную колебательную компоненту. Случай явно куда менее тривиальный, чем полет камня, описанный выше.
Мы можем найти аналитическое представление для траектории частицы в виде параметрически заданной (с параметром времени t) системы из трех уравнений:

Моделирование движения заряженной частицы в пространстве с магнитным полем показывает, что для принятых для моделирования параметров решаемой задачи, движение частицы происходит по спиралеобразной траектории. Получен как график траектории движения частицы, так и аналитические уравнения, описывающие это движение.
Разделение изотопов
Рассмотрим еще одну классическую задачу ядерной физики — разделение изотопов (атомов с одинаковым зарядом ядра, но разной массой). Для этого используют различные способы. далее…

Сравнение времен вычислений

Сравнение времен вычислений
Теперь определим время, необходимое для вычисления функции/(л:) в 1000 точек, используя первоначальное интегральное определение, и сравним его с временем, требующимся для схемы MinimaxApprox в виде непрерывной дроби. Так как наше приближение будет давать только 6 точных цифр, мы также потребуем 6 точных цифр и от интегрального представления функции:
> Digits :=б: St :=time():
> seq( evalf(f(i/250.0)), i = 1..1000 ):
> oldtime := time() — st;
oldtime-81.805
В процессе вычислений с использованием представления рациональной функции в виде непрерывной дроби иногда требуется внести несколько дополнительных цифр точности для страховки. В данном случае достаточно внести две дополнительные цифры. Итак, новое время вычислений:
> Digits := 8: st := tirae():
> seq( MinimaxApprox(i/250.0), i = 1..1000 ):
> newtime :» time()- st;
newtime:= .694 
Ускорение вычисления при аппроксимации есть:
> SpeedUp := oldtime/newtime;
SpeedUp:=U7.S7464
Мы видим, что процедура вычислений, основанная на MinimaxApprox, выполняется почти в 120 раз быстрее процедуры с использованием исходного интегрального определения. Это просто феноменальный успех, полностью оправдывающий время, потерянное на предварительные эксперименты по аппроксимации и ее оптимизации! Разумеется, при условии, что вы будете применять эту аппроксимацию многократно.

Преобразование в код Фортрана или С
Один из поводов разработки эффективной аппроксимации для вычисления математической функции заключается в создании библиотек подпрограмм для популярных языков программирования высокого уровня, таких как Фортран или С. В Maple имеются функции преобразования на любой из этих языков. Например, мы можем преобразовывать формулу для минимаксной аппроксимации в код Фортрана.

далее…

Примеры решения научно-технических задач

Примеры решения научно-технических задач
 
Небольшое введение
Выше при изложении данного учебного курса приводились многие сотни примеров применения системы Maple 15. При этом намеренно подбирались достаточно простые примеры, занимающие немного места и не требующие чрезмерных ухищрений для решения.
Многие читатели полагают, что системы компьютерной математики хорошо работают на таких простых примерах, но от них мало толку при решении реальных задач математики, физики или радиоэлектроники. Это, конечно, заблуждение. Дело просто в том, что при решении таких задач руководящая роль пользователя сильно возрастает. Вы должны понимать, что не Maple 15 решает вашу задачу, а вы! И система Maple 15 лишь помогает в этом трудном деле. Так что при неудачах в решении своих специфических задач следует прежде всего пенять на себя и на свое незнание возможностей системы Maple 15, а вовсе не на свою помощницу.
В том, что Maple можно успешно использовать при решении вполне конкретных научных и практических задач, призваны убедить примеры, приведенные ниже. далее…

Пакет Domains

Пакет Domains
Этот небольшой пакет служит для создания доменов — таблиц операций для вычислений. При его загрузке появляется сообщение о переопределениях объектов и список из всего лишь шести функций:
>restart;with(Domains):
 Domains version 1.0
Initially defined domains are Z and Q the integers and rationale Abbreviations, e.g. DUP for DenseUnivariatePolynomial,                  also made Warning, the protected names Array,                        Matrix and Vector have been redefined and unprotected               [Array, Matrix, Matrixlnverse, Vector, init, show]
Пакет допускает применение следующих конструкций:
 Domains[domain]     Doma1ns[evaldomains]
  Domains[example]    Domains[coding]
Приведенный ниже пример поясняет создание и использование доменов Q (для рациональных
данных) и Z (для целочисленных данных):
> Q[‘+’](l/2,2/5,3/8);
51/40
> Z[Gcd](660,130); 
10
Следующая операция показывает, что домен Z является таблицей: 
> type(Z,table);
true
А функция show позволяет вывести полный перечень всех операций, доступных для домена Z:
> show(Z,operations);
Signatures for constructor Z’ 
note: operations prefixed by — are not available
*: (Integers,Z) ->Z
* :(Z,Z*) ->Z 
+ :(Z,Z*) ->Z
-: (Z,Z) -> Z’
— :Z ->Z
0:Z
1:Z
< :(Z,Z) -> Boolean
<= : (Z.Z) -> Boolean 
<> : (Z.Z) -> Boolean
=:(Z.Z) -> Boolean 
>: (Z.Z) -> Boolean 
>-: (Z.Z) -> Boolean
Abs : Z ->Z
Characteristic : Integers
Coerce : Integers-> Z
 Div : (Z.Z) -> Union(Z,.FAIL)
EuclideanNorm : Z -> Integers 
Factor : Z -> [Z,.[[Z,Integers]*]]
Gcd : Z* -> Z 
Gcdex : (Z,Z,Name) ->Z 
Gcdex : (Z,.Z,Name,Name) -> Z
Input : Expression -> Union(Z,.FAIL)
 Inv : Z -> Union(Z,FAIL)
Lcm : Z* -> Z
Max : (Z,Z*) -> Z
Min : (Z,.Z*)-> Z
Modp : (Z,.Z) ->Z
Mods : (Z.Z)—> Z
ModularHoraomorphlsm : () -> (Z -> Z.Z)’
Normal : Z -> Z
Output : Z -> Expression
Powmod : (Z,Integers,Z) -> Z
Prime : Z -> Boolean
Quo : (Z,.Z,Name) ->Z
Quo : (Z,.Z) -> Z
Random : О ->Z
RelativelyPrime : (Z,.Z) -> Boolean’
Rem : (Z,.Z,.Name)-> Z
Rera : (Z,Z) -> Z
Sign : Z -> UNIONU,.-l,0)
SmallerEuclideanNorm : (Z,.Z) -> Boolean
Sqrfree : Z ->[Z,.[[Z,.Integers]*]]
Type : Expression -> ‘Boolean’
Unit : Z -> Z
UnitNormal : Z -> [Z,.Z,.Z]
Zero : Z -> Boolean
^ : (Z,Integers) -> Z.
Домены позволяют передавать в качестве параметра процедур набор функций в виде единого целою, что и объясняет название этих объектов. Предполагается, что это может привести к заметному сокращению кодов программ вычислений в будущих реализациях системы Maple. Пока же возможности доменов скорее выглядят как очередная экзотика, чем как реальное средство для оптимизации вычислений. Потребуется время, чтобы показать, что это не так.
Обзор пакетов узкого назначения
Мы уже не раз обращали внимание читателя на выборочный характер описания системы Maple 15 в данной книге. Хотя она и является одной из самых полных книг по данной системе, книга не претендует на роль детального справочника по Maple 15: Более того, такого справочника в виде книги нет и, вероятно, учитывая быстрые темпы модернизации программы, так и не будет. Для подобного описания Maple пришлось бы подготовить многотомное издание, охватывающее практически все области математики. далее…

Пакет стереометрии geom3d

Пакет стереометрии geom3d
Набор функций пакета geom3d
Помимо существенного расширения пакета geometry в систему Maple 15 введен новый геометрический пакет geonfld. Он предназначен для решения задач в области трехмерной геометрии. При загрузке пакета появляется доступ к большому (свыше 140) числу новых функций:
> with(geom3d);
[Archimedean, AreCollinear, AreConcurrent, AreConjugate, AreCoplanar, AreDistinct, AreParallel, ArePerpendicular, AreSameObjects, AreSamePlane, AreSkewLines, DefinedAs, DirectionRatios, Equation,’FindAngle, FixedPoint, GlideReflect, GlideReflection, GreatDodeeahedron, Greatlcosahedron, GreatRhombicuboctahedron, GreatRhombiicosidodecahedron,
GreatStellatedDodecahedron,HarmonicConjugate,
HexakisIcosahedron,Hexakis Octahedron, JnRadius,
 Is Archimedean, IsEquilateral, IsFacetted, 
IsOnObject, IsQuasi,hRegular,
IsRightTriangletIsStellated,IsTangent,
MidRadius, NormalVector, OnSegment, ParallelVector, PentagonalHexacontahedron, PentagonallcositetrahedronjPentakisDodecahedron, QuasiRegularPolyhedron,
RadicalCenter, RadicalLine,RadicalPlane, RegularPolyhedron, RhombicDodecahedron, RhombicTriacontahedron, Rotatory Reflect, Rotatory Reflection, ScrewDisplace, ScrewDisplacement, SmallRhombicubactahedron, SmallRhombiicosidodecahedron, SmallStellatedDodecahedron, SnubCube, SnubDodecahedron, StereographicProjection, StretchRotate, TangentPlane,
TetrakisHexahedron, TrapezoidalHexecontahedron, Trapezoidallcositetrahedron, Triakislcosahedron, TriakisOctahedron, TriakisTetrahedron, TruncatedCuboctahedron, TruncatedDodecahedron,TruncatedHexahedron, Truncatedlcosahedron, Truncatedlcosidodecahedron, TruncatedOctahedron, TruncatedTetrahedron, altitude, area, center, centroid, circle, coordinates, cube,
cuboctahedron, detail, dilate, distance, dodecahedron, draw, dsegment, duality,faces, facet, form, gtetrahedron, hexahedron, homology, homothety, icosahedron, icosidodecahedron, identity, incident, intersection, inverse, inversion, line, midpoint, octahedron, parallel, parallelpiped, plane, point, polar, pole, powerps, projection, radius, rqndpoint, reflect^ reflection, rotate, rotation, schlafli, segment, sides, sphere, stellate, tetrahedron, tname, transform, translate, translation, transprod, triangle, unit, valuesubs, vertices, volume, xcoord, xname, ycoord, yname, zcoord, zname ]
Функции этого пакета обеспечивают задание и определение характеристик и параметров многих геометрических объектов: точек в пространстве, сегментов, отрезков линий и дуг, линий, плоскостей, треугольников, сфер, регулярных и квазирегулярных полиэдров, полиэдров общего типа и др. Для описания функций этого пакета пришлось бы воспроизвести обширное справочное руководство по стереометрии. В то же время назначение функций ясно из их названия, а характер применения тот же, что для функций описанного выше пакета geometry.
Пример применения пакета geom3d
Учитывая сказанное, ограничимся единственным примером применения этого пакета.

далее…

Интерактивный ввод матриц

Интерактивный ввод матриц
Для интерактивного ввода матриц можно, определив размерность некоторого массива, использовать функцию entermatrix:
> А:=аггау(1..3,1..3):
А :=аггау(1 ..3,1 .. 3, [ ])
После исполнения этого фрагмента документа диалог с пользователем имеет следующий вид:
 

 

Основные функции для задания векторов и матриц
В библиотечном файле Unalg имеются следующие функции для задания векторов и матриц: 

  • vector(n,list) — сoздание вектора с n элементами, заданными в списке list;
  •  matrix(n,m,list) — создание матрицы с числом строк n и столбцов m с элементами, заданными списком list.

Ниже показано применение этих функций:

Обратите внимание на последние примеры — они показывают вызов индексированных переменных вектора и матрицы.
Функции для работы с векторами и матрицами
Для работы с векторами и матрицами Maple 15 имеет множество функций, входящих в пакет linalg. Ограничимся приведением краткого описания наиболее распространенных функций этой категории.
Операции со структурой отдельного вектора V и матрицы М: 

  •  coldim(M) — возвращает число столбцов матрицы М; 
  •  rowdim(M) — возвращает число строк матрицы М;
  •  vectdim(V) — возвращает размерность вектора V;
  •  col(M,i) — возвращает i-й столбец матрицы М;
  •  row(M,i) — возвращает i-ю строку матрицы М;
  •  tninor(M,i, j) — возвращает минор матрицы М для элемента с индексами i и j;
  •  delcols(M,i.. j) — удаляет столбцы матрицы М от i-roдо j-ro;
  •  del rows (V,i..j) — удаляет строки матрицы М от i-й до j-й;
  •  extend (М, т, n,х) — расширяет матрицу М на m строк и n столбцов с применением заполнителя х.

Основные векторные и матричные операции:

  •  dotprod(U,V) — возвращает скалярное произведение векторов U и V;
  •   crossprod(U,V) — возвращает векторное произведение векторов U и V;
  •   norm(V) или norm(M) — возвращает норму вектора или матрицы;
  •  copyinto(A,B,i, j) — копирует матрицу А в В для элементов последовательно от i до j;
  •  concat(Ml,M2) — возвращает объединенную матрицу с горизонтальным слиянием матриц Ml и М2;
  •  stack(Ml,M2) — возвращает объединенную матрицу с вертикальным слиянием Ml и М2;
  •  matadd(A,B) и evalm(A+B) — возвращает сумму матриц А и В;
  •  multlply(A,B) и evalm(A&*B) — возвращает произведение матриц А и В;
  •  adjoint (М) или adj(M) — возвращает присоединенную матрицу, такую что M?adj(M) дает диагональную матрицу, определитель которой есть det(M);
  •  charpoly(M,lambda) — возвращает характеристический полином матрицы М относительно заданной переменной lambda;
  •  det(M) — возвращает детерминант (определитель) матрицы М;
  •  Eigenvals(M,vector) — инертная форма функции, возвращающей собственные значения матрицы М и (при указании необязательного параметра vector) соответствующие им собственные векторы;
  •  jordan(M) — возвращает матрицу М в форме Жордана;
  • hermite(M) — возвращает матрицу М в эрмитовой форме;
  •  trace(M) — возвращает след матрицы М;
  •  rank(M) — возвращает ранг матрицы М;
  •  transpose(M) — возвращает транспонированную матрицу М;
  •  inverse(M) или evalm(l/M) — возвращает матрицу, обратную к М;
  •  singularvals(A) — возвращает сингулярные значения массива или матрицы А.

Приведем примеры применения некоторых из этих функций:
 

Читатель, понимающий суть матричных вычислений, легко справится с тестированием других функций, входящих в пакет linalg. В приведенных примерах полезно обратить внимание на то, что многие матричные функции способны выдавать результаты вычислений в аналитическом виде, что облегчает разбор выполняемых ими операций.

Решение систем линейных уравнений
Ниже представлен простой пример составления и решения трех систем линейных уравнений с применением функций, входящих в пакет linalg:

А теперь рассмотрим пример решения матричного уравнения в символьном виде:

Следующий пример показывает решение более сложной системы линейных уравнений с комплексными коэффициентами:

На этот раз решение получено использованием функций умножения матриц и вычисления обратной матрицы в виде X = А-1 В, то есть в матричном виде. В конце примера показано преобразование результатов с целью их получения в обычной форме комплексных чисел с частями, представленными в форме чисел с плавающей точкой.
Пакет линейной алгебры с алгоритмами NAG LinearAlgebra
Назначение и загрузка пакета LinearAlgebra
В последние годы разработчики систем символьной математики осознали, что малая скорость выполнения векторных и матричных операций при решении задач линейной алгебры оборачивается потерей заметной части рынка систем компьютерной математики. далее…