Работа с размерни величини в системата Maple



Дата17.04.2017
Размер137.47 Kb.

ГОДИШНИК НА ТЕХНИЧЕСКИ УНИВЕРСИТЕТ – ВАРНА, 2007 г.


Работа с размерни величини в системата Maple

Дияна Тодорова Николова*

*Технически университет – Варна, 9000 Варна, България, ул. “Студентска”№1, Е-mail: diq.nikolva@gmail.com

Резюме: В доклада са разглежда необходимостта от използване на размерни величини, видовете мерни системи, техните основни единици и връзката между тях чрез команди за конвертиране. Посочени са възможностите на системата за компютърна алгебра Maple и са представени основните функции и среди на работа в нейния пакет Units. Включени са примери за конвертиране на данни, добавяне на дименсии, единици, системи и проверка за вярност.

Ключови думи: единица, дименсия, конвертиране, Maple, системи мерни единици

УВОД

Мерните единици дават количествена и качествена оценка на измерването. Всяка наука работи с единици за мярка, отчитащи резултат от дейността й. Те могат да бъдат начална, междинна и крайна информация за всеки процес. Получената информация може да покаже как се развива процеса, какви мерки са необходими за подобряването му за да се достигне до желания краен резултат. За решаване на математически проблеми свързани с мерните единици може да се използва системата за компютърна алгебра Maple. Системата дава възможност за определяне на числените стойности на величините при решаване на конкретни задачи и техните дименсии като се използва пакета Units. Предимството му, е че с няколко реда от команди може да се премине от всяка мерна единица или величина в друга, което често пъти се налага на математици, инженери, икономисти и др.



MAPLE [1,2]

Продуктът представя мощна компютърна система с разширени възможности, като математическите пресмятания са автоматизирани с произволна степен на сложност. Пакетът е разработен от Waterloo Maple Software през 1988. Той дава възможности за ефективни решения на алгебрични и геометрични проблеми, задачи от математическия анализ, дискретна математика, теория на вероятностите и статистика, комбинаторно смятане, интегрални трансформации, числени пресмятания, финансова математика и др. Версията Maple 9.5 включва много нови алгоритми и изчислителни методи.

Добре развитият програмен език позволява потребителя да създаде независими команди и приложения за решаване на специфични задачи. Голямата библиотека от вградени функции и операции ускорява развитието на математическите програми.

Основните характеристики на пакета са следните:

- работи в Windows, Macintosh, Unix, Linux среди.

- мощен програмен език от 4th генерация (4GL).

- символни и числени алгоритми за решение на математически проблеми, включително числени методи от компанията NAG.

- повече от 3000 вградени функции.

- разбираем и удобен интерфейс с вграден текстов редактор.

- използване на общоприети математически калкулатори.

- възможност да се използва като калкулатор.

- въвеждане of таблици с числа и символи (characters).

- позволява конвертиране в LaTeX формат.

- справочник за физични константи и мерни единици с автоматично пресмятане на формули.

- 2D и 3D графики и анимация, която позволява ротация на 3D повърхности в реално време.

- осигурява извеждане в електронен формат (html), както и във формат подходящ за публикуване на документи.


Величини и единици [3]


Физичните величини могат да се подразделят на категории по такъв начин, че всяка категория да съдържа величини, които могат взаимно да се сравняват. Една такава категория може съдържа величините дължина, диаметър, разстояние, височина, дължина на вълна и др. Величините от дадена категория се сравняват помежду си, посредством конкретна постоянна величина, наречена единица. Така всяка друга величина от категорията се изразява като функция на тази единица чрез умножаването й с число. Това число се нарича числена стойност на величината, изразена с тази единица.

Величините от различни категории са свързани помежду си чрез уравнения, които изразяват природни закони. За да се определят системите от величини и да се въведе понятието размерност, някои величини трябва да се приемат за взаимно независими, т.е. да се разглеждат като основни величини.

Изборът на това, колко и кои да са основните величини, е произволен. През 1960 г. на 11-тата Генерална конференция по мерки и теглилки са определени основните величини на Международната система единици (SI), като в рамките на отделни области са достатъчни само някои от тях.

Единиците в една система също могат да се избират произволно, но от практическа гледна точка е по-удобно основните и производни единици да са в съответствие с избраната система величини. Такава система единици се нарича кохерентна (система SI). Тя съдържа основни и производни единици, които включват и допълнителните единици, които са безразмерни.



Видове мерни системи [3,6]

Международна система мерни единици SI - най-широко използваната система в света, като в повечето страни е задължителна. В България е въведена през 1979 г. и е задължителна за всички области на науката, образованието и практиката. Системата е изградена върху седем основни единици - килограм, метър, секунда, мол, ампер, келвин и кандела, от които се получават всички останали и две допълнителни единици – радиан и стерадиан.

Имперска система (Великобритания) - в основата й са положени три мерни единици, чиито стандарти се съхраняват в Лондон - ярд, фунт и галон. Понастоящем те се дефинират в отнасяне спрямо основните единици на системата SI - метър, килограм и литър. Съотношенията са както следва:

1 ярд (yard) = 0,9144 m

1 фунт (pound) = 0,453 592 37 kg

1 галон (gallon) = 4,546 09 l.



Мерната система в САЩ – системата е аналогична на тази във Великобритания. В основата й са положени мерните единици ярд, фунт, галон и бушел. Те също се дефинират спрямо основните единици на SI, както следва:

1 ярд (yard) = 0,9144 m

1 фунт (pound) = 0,453 592 37 kg

1 галон течен (gallon liquid) = 3,785 411 784 l

1 бушел (bushel) = 35,239 070 166 l .

Пакет UNITS в Maple [4,5]

Пакетът съдържа графичен потребителски интерфейс за преобразуване на единици в различни среди за извършване на пресмятанията. За работа с него е необходимо е да се въведе командата with(Units).



Кратки и дълги форми на командите

Всяка команда в пакета Units може да бъде достъпна чрез използването на една от двете форми: кратка и дълга. Дългата форма на командите е необходима, ако кратката форма не е дефинирана чрез командата with, with(PackageName, command) или ако в отворения Maple има същото име на команда в пакета PackageName.


Среди на работа


В пакета Units има три среди на работа:

- по подразбиране (Default) - съдържа следните функции: convert[units],convert[temperature], convert[conversion_table], convert[dimensions], convert[system]

Тази среда може да се използва само, ако се работи с единици, които не се налага да се превръщат в други при пресмятането им. Например за получаването на величината сила по формулата f=m*l/t2, трябва се да въведат числените стойности и техните дименсии за величините m, l и t:






В следващите две среди, ако се въведе за m израз с различни дименсии на единиците, ще се получи същия отговор.

- естествена (Natural) - списъка от команди за пресмятане на единици са същите, но функциите са различни. Използва се естествената бройна система за означаване на знаци (*unit_name) и единиците се въвеждат като изрази.

- стандартна (Standard) - с команда with(Units(Standard)) се показват функциите за поддържане въвеждането чрез единици, като не се позволява използването на кратки форми на командите за дименсии, единици и системи от единици. За въвеждане на единиците като изрази се използва команда *Unit(unit_name). Резултатът е в квадратни скоби. Средата дава възможност величините да се именуват с общите символи, използвани за имена на единиците, като m за "метър" и s за "секунди".

Команда convert():

В Maple командата convert() може да бъде използвана директно за единични преобръщания без командата with(Units).

Определящ фактор за превръщането е променлива без знак.

Пример: convert(0, temperature, degC, degF); 32

Команди на пакет Units

За превръщането на една мерна единица в друга се използват следните 20 команди:



- AddBaseUnit – добавя основната единица и я свързва към основната дименсия. Извиква се с командата:

AddBaseUnit(unit, context=unit_context, dimension=dimension_name, opts)

където - unit - символ, име на единица; unit_context - символ, връзка за единица (контекст); dimension_name - символ, име на дименсия; opts - (optional) (избираем), уравнение (я) от типа option=value, където option е една от abbreviation (съкращение), abbreviations (съкращения), check (проверка), default (по подразбиране), plural (множество), prefix (представка), spelling (правопис), spellings (правописи), symbol (символ) или symbols (символи), определящи избора на единица.



Пример:

> with(Units):

>AddBaseUnit(individual, context = human, dimension = animal, spellings = individuals);

>AddUnit(company, context = human, conversion = 2 * individual, spellings = companies);

>AddUnit(crowd, context = human, conversion = 3 * individual, spellings = crowds);

> convert(9, units, individuals, crowds);



- AddDimension – добавя или преименува комплексна дименсия.

Извиква се с командата: AddDimension(dim=expr)

където - dim - символ, име на дименсия; expr – символ, комплексна дименсия.

Функцията преименува комплексната дименсия - expr като dim за текущата сесия на работа.

Пример:

> with(Units):

> AddDimension(surge = length/time^3);

> convert(m/s^3, dimensions);

Тази функция може да бъде използвана да преименува изходната величина.

> convert(V, dimensions);

- AddSystem – добавя или променя система от единици.

Извиква се с командата: AddSystem(system, opts, units),

където - system – символ, име на система; opts - (по избор) уравнение от вида check=true или false (проверка за вярно или грешно ), определящо избора на системата; units - символ, номер на изходната мерна единица, който да бъде свързан с дадената система.


Тази функция добавя или преопределя система от единици в текущата сесия. Системата не може да има две единици с една и съща дименсия.

- AddUnit - Добавя или премахва единица.

Извиква се с командата: AddUnit(unit, opts)

където - unit – символ, име на единица; opts – уравнение(я) от типа option=value, където option е една от abbreviation (съкращение), abbreviations (съкращения), check (проверка), conversion (превръщане), context (контекст), default (зададен), plural (множество), prefix (представка), spelling (правопис), spellings (правописи), symbol (символ), или symbols (символи), определящи избора на единица.


Аргумента opts може да съдържа едно или повече от горните уравнения.

Пример:

with(Units): % Въвежда се „метър” на полски език и френското наименование на „крак”.

> AddUnit(meter, spellings={metr, metry});

> AddUnit(foot, spellings=pied);

> convert(1.0, units, centimetry^2, pied^2);

Вижда се как думата „крак” може да бъде възприемана като единица, а думата „шарен” (pied) като уравнение.

- GetDimension – пресъздава дименсия като връща действието до AddDimension.

Извиква се с командата: GetDimension(dim)

където - dim – символ, дименсия.


Извеждането на аргумента като базова величина и произведение на основни величини, става с тази функция.

Пример:


> with(Units):

> GetDimension(speed);

> GetDimension(surge);

Error, (in Units:-GetDimension) a dimension with name `surge` does not exist

> AddDimension(surge = length/time^3);

> GetDimension(surge);

Грешката се получава от това, че не разпознава „surge” като съществуваща величина. Трябва да се въведе израз за нейното получаване чрез AddDimension.

- GetDimensions – списък на всички дименсии.

Извиква се с командата: GetDimensions(opts)

където - opts - (по избор) уравнение от вида simple=true или false, определящо вида на величините.

Функцията извиква като израз серия от величини. Аргументът може да съдържа следното уравнение: base = true или false.


- GetSystem – списък на единици в системата от единици.

Извикване: GetSystem(system)


където - system – символ, име на символ.


Функцията извежда всички единици в система от единици.

- GetSystems – списък на всички системи от единици.

Извиква се с командата: GetSystems ()

Пример:


> with(Units):

> L := GetSystems();



- GetUnit – информация за единица.

Извиква се с командата: GetUnit(unit, opt1, opt2, ...)

където - unit - символ, име на единица; opt1, opt2, ... (по избор) - съкращение или съкращения, контекст, преобразуване, задание, множество, представка, правопис, правописи, символ, символи, определящи дадената единица.

- GetUnits – списък на имената на всички единици.

Извиква се с командата: GetUnits(opts)

където - opts – (по избор) уравнение(я) от вида option=value, където option е една от контекст, величина, енергия или име, определящи вида на единицата.


Аргумента може да бъде един от следните уравнения: context = symbol, dimension = algebraic expression, energy = true or false, name = symbol

Пример:

> with(Units):

> nops([GetUnits()]); 569

> GetUnits(context=avoirdupois);


- HasDimension – тества дали дименсията съществува.

Извиква се с командата: HasDimension(dim)

където - dim –символ, име на дименсия.

Пример:


> with(Units):

> HasDimension(length);


- HasSystem – тества дали система от единици съществува.

Извиква се с командата: HasSystem(system)

където - system – символ, име на символ.

Примери:


> with(Units):

> HasSystem(CGS);

> HasSystem(Cgs);

- HasUnit – тества дали единицата съществува.

Извиква се с командата:


HasUnit(unit, opts)

където - unit – символ, име на единица; opts – (по избор) уравнение (я) от вида option=value, където option показва вярно или грешно - (display = true or false).

Пример:


> with(Units):

> HasUnit(mm);


- RemoveDimension – премества дименсия.


Извиква се с командата: RemoveDimension(dim)

където - dim – символ, име на дименсия.


Базова величина не може да бъде премествана.

Пример:


> with(Units):

> convert(m/s, dimensions); speed

> RemoveDimension(speed);

> convert(m/s, dimensions); length/time


- RemoveSystem – премества системи от единици.


Извиква се с командата: RemoveSystem(system)

където - system –символ, име на система от единици.


Системата не може да бъде преместена, ако е зададена предварително в самата среда на Maple.

Пример:


> with(Units):

> AddSystem(FHF, check, furlong, hundredweight[long], fortnight);

>UseSystem(FHF);

>RemoveSystem(FHF);



Error, (in Units:-RemoveSystem) the system `FHF` of units iscurrently set to the default (see ?UseSystem).

Системата „FHF” вече е зададена в средата по подразбиране и не може да бъде преместена.


- Unit – извежда аргумент като единица в стандартна форма.


Извиква се с командата: Unit(expr)

където - expr – алгебричен израз.

- UseContexts – поставя зададен контекст.


Извиква се с командата: UseContexts(ctx1, ctx2, ...)

където - ctx1, ctx2, ... – символ (и), контекст (и) на единици.

Пример:


> with(Units):

> convert(1.0, units, kg, oz);


- UseSystem – поставя предварително зададена система от единици.

Извиква се с командата:


UseSystem(system, opts)

където - systemпо избор, име на ситема от единици; opts - по избор, уравнение от вида strict=true или false, определящо избора на система.

- UsingContexts – лист от предварително зададени контексти на единици.

Извиква се с командата: UsingContexts()

Пример:


> with(Units):

> UsingContexts();

UseContexts(troy, US_survey);

UsingContexts();


- UsingSystem – показва предварително зададена система от единици.

Извиква се с командата: UsingSystem()

Пример:


> with(Units):

> UsingSystem();

Конвертиране между измервателните системи

Maple автоматично конвертира отговора на зададени единични системи и единици. SI е определена единична система, използвана чрез Units – пакета.



>with(Units);

>myDist:=4ft+3.5inches 1.3 m

Като се използва конвертираща команда може израза да пресметне в стандартната система на САЩ – FPS (foot-pound-second). >MyDist:=convert(myDist, system, FPS) 4.29ft

Представки към единиците


За да се напише множество от единици в съкратена форма и да се избегне големия обем на наименованията, може да се използва списъкът от представки [2], които да се използват съвместно с основните единици. Представките се добавят към името на единицата и символа им към символа на основната единица. Например: сантиметър и см. Представките не могат да се прибавят към символ и префикса на символа не може да се присъединява към символа на единицата. Например „сметър” и „сантим” не са разпознават като единици. Префиксът трябва да се използва съвместно с единицата. Той не може да се изразява като числова стойност. Например: „к” не може да се представи като 1000. Префиксите не могат да бъдат комбинирани в сложни представки. Например: „нанометър” не може да се напише „милимикрометър”.

Проверка (единици), verify (Units)

Проверка на равенството на два израза с единици. Извикване на функция:

verify(expr1, expr2, units)

verify(expr1, expr2, units(ver))


където - expr1, expr2 – от алгебричен тип; ver - потвърждение за използване.

Ако два изрази са множество от единици с една и съща дименсия, като всеки от тях е предварително зададена система от единици, то единиците се махат и резултатът се сравнява с evalb или с ver, ако е необходимо. Във функциите expr1 или expr2 няма да се променят преди да бъдат сравнени и ако превръщането не е извършено. Ако те не са от алгебричен тип, се извежда false.


Примери от математичния анализ

1. Определяне на скорост и ускорение на тяло чрез производна

Да се намери ускорението а на свободно падащо тяло, ако зависимостта на разстоянието s от времето t се дава с формулата:



където – - ускорение на земното притегляне;

- - стойност на s при t=0.

Резултатът да се превърне в системата FPS (метър -> ярд).

Въвеждат се стойностите за s и g и техните единици в Maple. Като се използва два пъти команда diff за диференциране се получава скоростта и ускорението на тялото.

> with(Units[Standard]):

> g:=9.8*Unit(m/s^2);

> sn:=s0*Unit(m);

> vn=v0*Unit(m/s);

> s1:=0.5*g*t^2*Unit(s^2);

> s2:=vn*Unit(m/s)*(t*Unit(s));

> s3:=sn;

> s:=s1+s2+s3;

> v:=diff(s,t);

> a=diff(v,t);

2. Изчисляване на сила с помощта на определен интеграл

Свиването S на винтова пружина е пропорционално на приложената сила F. Да се изчисли работата на силата F при свиването на пружината с 5 см, ако за свиването й с 1 см е нужна сила 10 H.

Силата и преместването са свързани по условие със зависимостта , където к = const. Мерните единици на величините са следните: S в метри, F в нютони. Работата на силата се определя по формулата:

В Maple се въвеждат величините S = 0.01, F = 10, a=0 и b=0,05 с техните единици. Определя се k=F/S. Като се използва команда int се определя работата на силата А.



> with(Units[Standard]):

> S := 0.01 * Unit(m);

> F := 10 * Unit(N);

> k:=F/S;

> a:=0*unit(m);

> b:=0.05*Unit(m);

> A:=int(k*s,s=a..b);

Литература

[1] Kovacheva Ts. ”Mathematical packages for teaching and research in Internet applications and information support”, “Information theories@Application”, v.11,4,2004, 387-393.

[2] Maple Application Center, Waterloo Maple Software www.maplesoft.com

[3] Системи единици www.wikipedia.com

[6] Справочник на мерните единици www.bgnews.bg/media.html?media=47549806

[4] The Units Package in Maple

http://www.adeptscience.com/download/dlddsp/4177/0/All/

The+Units+Package+in+Maple+-+poster.html

[5] Units in Mathcad & Maple www.mpei.ac.ru/ochkov/work2_eng.htm




Научен ръководител: гл.ас.д-р Ц. Ковачева, кат. “Математика”, ТУ-Варна, Е-mail: tsveta_kovacheva@tu-varna.acad.bg





База данных защищена авторским правом ©obuch.info 2016
отнасят до администрацията

    Начална страница