Изграждане на семейство криви в Mathcad
Функциите на два независими аргумента (променливи) f ( x , y ) в средата на математическите пакети и по-специално в средата на Mathcad могат да бъдат показани с помощта на триизмерни графики - повърхности. Но в справочната литература триизмерните графики се използват рядко. Трудно е да се работи с триизмерни графики, проектирани върху равнината на страница с ръководство - да се наблюдават зависимости, да се оценяват стойности и т.н. Освен това показаните функционални зависимости могат да имат повече от два аргумента. Функциите на два аргумента в референтната литература като правило се показват като семейство криви, върху които ясно се виждат определени зависимости (наклон на кривите, например минимуми и максимуми и т.н.) и чрез които, ако е необходимо, можете да оцените стойността на самата функция в една или друга точка - начертайте стойността на първия аргумент по оста y, мислено или дори нарисувайте липсващата крива (втори аргумент) с молив и прочетете отговорът по оста Y.
В средата на Mathcad една декартова диаграма (X - Y графика) може да начертае до 16 (Mathcad 11 и по-нови) или до 32 (Mathcad 12 [1] и по-нови) криви. На фиг. Фигура 1 показва как се изграждат такива криви: един (първи) аргумент - функция y е формален параметър ( x ) и се дублира върху оста y, а вторият аргумент е константа, или изрично написана (0.1, 0.5 и 10), или определена чрез променлива ( e ). Могат да се отбележат следните недостатъци на този метод за конструиране на семейство криви:
1. Броят на кривите, показвани на диаграмата, се задава изрично чрез форматиране на самата диаграма - промяна на списъка с функции на абсцисната ос. Но това действие е блокирано при отваряне на документ на Mathcad чрез MAS.
2. Броят на кривите на графиката не може да бъде повече от 16 (32 - виж по-горе).
3. С голям брой криви или по-скоро броя на функциите, въведени близо до оста Y(Фиг. 1), самата графика става твърде висока и нейният вертикален размер не може да бъде намален чрез разтягане (или по-скоро „затягане“) на графиката.
Друга (алтернативна) технология за конструиране на семейство криви, която ще бъде описана по-долу, се основава на генерирането на два вектора y ( x ) [2] и x, които съхраняват координатите на кривите.
На фиг. 3 показва операторите, скрити на фиг. 2. Образуват с помощта на два цикъла с параметър два вектора x и y(x), описани по-горе. В първия (външен) цикъл се търси векторът a, а във втория (вложен в първия) - стойности x, дадени от диапазона x1-x2 и броя на точките в него ( n ). В този случай изброяването на стойностите x във вложения цикъл се извършва по различен начин в зависимост от номера на кривата в семейството: от x1 до x2 за четни стойности на номера на кривата и в обратна посока (от x2 до x1) за нечетни стойности. Този "малък трик" ви позволява да свържете точките на графиките с линии, така че самата графика да не бъде зачеркната от диагонални прави линии, свързващи последната точка от предишната крива с първата точка от следващата (вижте фиг. 3 a). На нашата диаграма (фиг. 2) тези линии станаха хоризонтални и невидими поради наслагването върху рамката на диаграмата. Друг (традиционен) начин да направите свързващите диагонални линии невидими е да увеличите броя на точките (променлива n на фиг. 3) и да форматирате графиката с не-линии, както е направено на фиг. 2, но чрез точки, които се сливат в линия, ако самата функция y(x, a) не се променя твърде рязко от x (виж фиг. 3b). Какво не може да се каже за нашия случай (фиг. 2), когато зависимостта на енталпията на водата и водната пара от налягането се изобразява при различни температури (семейство от изотерми), където в подкритичната област функцията wspHPT скача от областта на парата на линията на насищане към областта на водата на линията на насищане през областта на мокродвойка.
Друга функция на програмата, показана на фиг. 3. Векторите y(x) и x се попълват в отделни цикли за … за … , въпреки че изглежда, че за да се ускори програмата, тази операция трябва да се извърши в един цикъл. Но въпросът тук е, че тези два вектора могат да бъдат и размерни (нашият случай - вижте фиг. 2, където аргументът x има размерността на налягането, а самата функция y(x, a) има размерността на специфичната енталпия). Една програма на Mathcad не може да върне два вектора или два скалара с различни измерения. Следователно тези два вектора трябва да се формират отделно.
Говорейки за размери. На фиг. 2 стойността на специфичната енталпия в дадена (въведена) точка (р=200 atm и t=800 K) е дадена не в kJ/kg, а в … m 2/s 2, т.е. опростен до краен предел – съответно форматиран. Това се дължи на факта, че тук могат да се показват различни стойности с различни мерни единици, в зависимост от типа на въведената функция в първото текстово поле на фиг. 2. Поради това е невъзможно предварително да се заменят необходимите („твърди“) мерни единици в последния операнд на оператора за извеждане на числова стойност ■ = ■ ■ , предназначен да коригира мерните единици на изходната стойност. Между другото, ние самите често правим такова не съвсем законно (логично) опростяване на единици, без да го забелязваме. Например, единицата за топлопроводимост трябва да бъде такава единица - W m /( m 2 K ), а не W /( m K ). Метрите не могат да бъдат намалени тук, тъй като те измерват различни величини - дължина ( m ) и площ ( m 2 ). Ако единицата за специфична енталпия не е опростена, тогава пакетът Mathcad ще даде ... Sv (вижте Фиг. 3 c) - единицата на ефективната доза сиверт), която също е „липсваща цел“. Решението тук може да бъде следното - да се издават числа без единици, а самите единици да се въвеждат в отделни текстови полета (виж фиг. 3 d).
На фиг. 4 показва как семейството можекриви, променят променливата y на оста x и конструират не семейство от изотерми, а семейство от изобари.
Описаният метод за конструиране на семейство криви също не е без недостатъци, основният от които е, че отделните криви не могат да бъдат форматирани с различни стилове, както е показано на фиг. 1. Вторият недостатък е, че ако функция в даден диапазон не е дефинирана навсякъде, това не е проблем за традиционната графична технология. С нашия метод конструкцията на семейство криви ще бъде прекъсната от грешка. Тук ще е необходимо да се допълнят програмите, показани на фиг. 3, оператори за обработка на грешки.
[1] В Mathcad 12 и по-нови се появи втора X-ос, с която, ако е необходимо, можете да удвоите броя на кривите на графиката.
[2] Това не е функция y от x, а променлива с име y(x), която се създава в средата на Mathcad чрез акорда Ctrl - Shift - k, който заглушава въвеждането на специални знаци ”(“ , “)” и т.н. Разбира се, можете да дадете на този вектор по-традиционно (просто) име - y, например. Но името y(x) е по-информативно.