МЕТОДИЧКА ПО MAPLE и MATHCAD
.pdf
|
|
|
|
|
|
|
|
131 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
начальные условия |
|
|
||||
y: 3 |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
y1 |
|
|
|
|
|
|
|
|
y2 |
|
|
|
||
D(t,y): |
|
|
|
||||||
|
|
|
exp(2 t) 6 y |
2 |
8 y |
0 |
12 y |
|
|
|
|
|
|
|
|
1 |
|
||
z:=rkfixed(y,a,b,n,D) |
|
|
|
|
|
||||
u:=z<1> |
|
|
извлекаем из матрицы z столбец, содержащий |
||||||
i:=1..n |
|
|
решение системы уравнений x1 |
||||||
|
|
задаем дискретный аргумент |
|
||||||
h: |
b a |
|
задаем шаг изменения аргумента t |
||||||
|
|||||||||
|
n |
|
|
|
|
|
|
|
|
задаем дискретные значения точного решения уравнения
Ui exp(2 i h) (i 6h)3 1 i h (i h)3
относительные погрешности численного решения уравнения
di : ui Ui , Ui
ORIGIN:=OLDORIGIN восстанавливаем старое значение График относительной погрешности численного решения
В качестве еще одного примера рассмотрим решение следующей системы уравнений:
2 d x d y 3 x 0
dt |
dt |
||
d2 |
|
d |
|
|
x |
|
y 2 y exp(2 t) |
dt2 |
|
||
|
dt |
x(0) 0.25,x (0) 10.092,y(0)
132
2 d x d y 3 x 0
dt |
dt |
|||
d2 |
x |
d |
y 2 y exp(2 t) |
|
dt2 |
dt |
|||
|
|
x(0) 0.25,x (0) 10.092,y(0) 4.921
Точное решение этой системы уравнений при заданных начальных условиях имеет вид:
|
1 |
|
23 |
|
|
t |
|
||
|
|
|
|
||||||
x(t) |
|
exp 2 t 4 sin |
|
t |
|
exp |
|
|
|
4 |
2 |
2 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
exp 2 t |
|
|
|
|
|
|
|
|
|
|
|
23 |
|
|
|
23 |
|
t |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
y(t) |
|
|
|
|
|
|
23 cos |
|
t |
7 sin |
|
t |
exp |
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
2 |
|
2 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Текст программы: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
n:=100 число точек, в которых ищется решение уравнения |
|
|||||||||||||||||||||||||||||||||||||
a:=0 |
|
|
|
|
|
|
начальная точка интервала |
|
|
|
|
|
|
|||||||||||||||||||||||||
b:=1 |
|
|
|
|
|
|
конечная точка интервала |
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
0.25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
начальные условия |
|
|
|
|
|
|
|
|||||||||||||||||
|
x: 10.092 |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
4.921 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Введем обозначения: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
x x |
|
, |
d |
x |
|
x , |
|
|
x |
|
|
|
= y, |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
d |
|
|
|
0 |
|
|
dt |
|
|
|
0 |
1 |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
x |
|
|
3 x |
|
|
2 x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
dt |
2 |
|
|
|
|
|
|
|
0 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
d |
x |
|
exp 2 t 2 x |
|
|
d |
x |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
dt |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
dt 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|||||
или, учитывая, что |
d |
x |
|
3 x |
|
2 x , |
|
|
|
|
|
|
||||||||||||||||||||||||||
dt |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
0 |
|
|
1 |
|
|
|
|
|
|
окончательно получим: d
dt x0 x1
d
dt x1 exp(2 t) 2 x2 3 x0 2 x1
d
dt x2 3 x0 2 x1
|
|
|
|
133 |
|
С учетом принятых обозначений |
|||||
|
|
|
x1 |
|
|
|
|
|
|
|
|
D(t,x): exp(2 t) 2 x1 3 x0 |
2 x1 |
||||
|
|
|
3 x0 2 x1 |
|
|
|
|
|
|
||
z:=rkfixed(x,a,b,n,D) |
|
||||
u:=z<1> |
извлекаем из матрицы z столбцы, содержащие |
||||
v:=z<3> |
решение системы уравнений x,y |
||||
|
|
||||
i:=1..n |
задаем дискретный аргумент |
||||
h: |
b a |
|
задаем шаг изменения аргумента t |
||
n |
|||||
|
|
|
задаем дискретные значения точных решений системы уравнений
|
23 |
|
i h |
||||
|
|
||||||
|
|
exp |
|
|
|||
Xi 0.25 exp(2 i h) 4 sin |
2 |
|
i h |
2 |
|||
|
|
|
|
|
Yi : 0.125exp(2 i h) 23 cos 223 i h 7 sin 223 i h exp i2h
относительные погрешности численного решения уравнения
d |
i |
: |
ui Xi |
,d1 : |
vi Yi |
|
|
||||
|
|
Xi |
i |
Yi |
|
|
|
|
|
График относительных погрешностей численного решения
4 10 5 |
|
|
|
|
3 10 5 |
|
|
|
|
2 10 5 |
|
|
|
|
1 10 5 |
|
|
|
|
0 0 |
0.25 |
0.5 |
0.75 |
1 |
|
d |
|
|
|
|
d1 |
|
|
|
Программирование
Если Mathcad не содержит необходимых для решения задачи функций, и в силу сложности решаемой задачи самостоятельно написать соответствующую функцию невозможно, то возникает необходимость в написании программы. Преимуществом программы является то, что в ней можно использовать необходимое количество
134
функций и операторов, как встроенных, так и написанных пользователем. Следует отметить, что, хотя для написания программ Mathcad предоставляет в распоряжение пользователя небольшое количество операторов, сложность программ, с учетом встроенных функций и операторов Mathcad, может быть очень большой. Для вызова операторов программирования следует нажать иконку на лицевой панели, после чего откроется палитра операторов
Процесс написания программы
Введем название программы после, если это необходимо, в скобках укажем перечень параметров передаваемых программе. Затем нажмем клавишу двоеточие (: ) и в палитре операторов кнопку (Add Line) в результате на экране появится, например, следующее изображение
Summ(a,b,c)
в черные квадраты вводятся переменные, операторы и функции. Для того чтобы переменной присвоить некоторое значение следует нажать в палитре операторов кнопку ( ). Положим, например, что программа Summ(a,b,c) - программа суммирования трех чисел a, b, c, тогда получим
Summ(a,b,c) |
|
d |
|
a |
|
|
|
b |
|
|
c |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
Summ d
Summ(1,2,3) = 6
Если в тест программы необходимо ввести дополнительные операторы, то следует выделить строку, после которой необходимо ввести оператор и нажать кнопку (Add Line).
В качестве примера рассмотрим текст программы, предназначенной для решения системы уравнений с треугольной матрицей
135
TRS(Y,T ,n) |
|
j |
|
1 |
|
|
|||
|
for i 1.. n bi
break |
|
|
if |
Tn,n |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
bn |
|
|
Yn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
T |
n,n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
while |
|
j<n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
break |
|
|
if Tn |
|
|
|
j,n |
|
|
j |
|
|
0 |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Y |
|
|
|
|
|
j |
|
|
1 |
|
T |
|
|
|
|
|
|
.b |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
j |
|
|
|
|
|
|
|
n |
|
|
j,n |
|
i n |
|
i |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
bn |
|
|
j |
|
|
|
|
|
|
|
|
|
|
|
i = 0 |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tn |
|
|
j,n |
|
|
j |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
j j 1
TRS b
Свойства операторов Операторы цикла
while - этот оператор аналогичен соответствующему оператору из зыков Pascl и Си. Цикл выполняется до тех пор, пока истинно некоторое условие, т.е. число циклов в данном случае заранее может быть не определено. Структура оператора имеет вид
while условие
тело
цикла
for - этот оператор аналогичен соответствующему оператору из языков Pascl и Си. Цикл выполняется заранее заданное число раз. Структура оператора имеет вид
for i 1.. n
тело
цикла
где i дискретный аргумент
Оператор прерывания исполнения программы
136
break - этот оператор позволяет прекратить выполнение программы (цикла) если выполняется некоторое условие. Структура оператора имеет вид
break if условие_выхода
Условный оператор if - этот оператор позволяет изменить порядок выполнения программы, если выполняется некоторое условие. Структура оператора имеет вид
F(x): x2 1 |
if -2 |
x -1.3 |
F(x) |
||
-F(x) |
if -1.3 x 0 |
|
f (x): |
if 0 |
x 1.4 |
F(x)2 |
x otherwise
Построение графиков
Mathcad позволяет строить графики функций одной переменной в декартовой и полярной системах координат и функций двух переменных в виде графика поверхности, трехмерных гистограмм, карты линий уровня и точечного графика.
Для создания графика следует войти в меню Insert подменю
Graph
X-Y Plot |
график одной переменной |
|
Polar Plot |
график в полярной системе координат |
|
Surface Plot |
график поверхности |
|
Contour Plot |
график линей равного уровня |
|
3D |
Scatter Plot точечный график |
|
3D |
Bar Chart |
трехмерная гистограмма |
|
137 |
Vector Filed Plot график векторных полей |
|
Или - нажать иконку |
и войти в палитру графиков |
и нажать кнопку соответствующего графика.
После нажатия соответствующего подменю или кнопки палитры графиков на экране в точке нахождения курсора появится пустая заготовка для графика с полями ввода. Для графика одной переменной число полей ввода шесть, по три на каждую ось координат. Для полярного графика полей ввода четыре, для остальных типов графиков одно поле ввода.
Построить график можно либо задав аналитическое выражение для функции либо задав массивы значений аргумента (аргументов) и функции. Рассмотрим в начале процесс построения графика функции одной переменной.
Построение графика функции заданной аналитически. Зададим аналитическое выражение для функции
f (x): exp 0.1 x2 sin(x),
щелкнем левой кнопкой мышки по свободному месту и нажмем указателем мышки по иконке в палитре Graph. В результате этих действий в окне появится заготовка графика одной переменной
1
2
где в положении маркера 1 вводится обозначение для функции, а в положении 2 обозначение для аргумента (вводить значение аргумента не обязательно). В результате получим следующий рисунок
138
|
1 |
|
|
|
|
|
0.5 |
|
|
|
|
f(x) |
0 |
|
|
|
|
|
0.5 |
|
|
|
|
|
1 |
5 |
0 |
5 |
10 |
|
10 |
x
Пределы изменения функции и аргумента можно изменить для этого щелкните левой кнопкой мышки по полю графика
1
0.814
0.5
f(x) 0
0.5
0.814
1 |
|
|
|
|
|
|
|
|
5 |
0 |
5 |
10 |
|||
10 |
|||||||
|
10 |
|
|
x |
|
10 |
|
выделенные на рисунке кружками цифры щелкнув по ним указателем мышки можно менять, меняя тем самым интервалы изменения аргумента и функции. Ниже на рисунке интервал изменения функции изменен с [-1,1] на [-2, 2], интервал изменения аргумента с [-10, 10] на [- 8, 8]
|
2 |
|
|
|
1 |
|
|
f(x) |
0 |
|
|
|
1 |
|
|
|
2 |
0 |
5 |
|
5 |
||
|
|
x |
|
139
Построим теперь график функции, задав массивы аргумента и функции, вначале создадим массивы
ORIGIN:=-100
f (x): exp( 0.1 x2) sin(x) n:=100
i:=-n..n h:=0.1 xi : i h
Fi : f (xi)
Затем вставим в соответствующие маркеры заготовки графика xi и Fi или f (xi) получим
|
1 |
|
|
|
|
|
0.5 |
|
|
|
|
f xi |
0 |
|
|
|
|
0.5 |
|
|
|
|
|
|
1 |
5 |
0 |
5 |
10 |
|
10 |
||||
|
|
|
xi |
|
|
На одном и том же графике можно построить несколько функций одного и того же аргумента для этого после ввода в положении маркера f (xi) нужно нажать клавишу запятая после этого появится новый маркер куда нужно будет ввести следующую функцию на одном графике можно отобразить до 16 различных функций
|
|
|
|
1 |
|
|
|
|
f xi |
|
|
|
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
sin xi |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.1 |
|
x |
2 |
|
|
|
|
exp |
|
|
|
|
|
|||
|
|
i |
|
|
|
|
||
|
|
|
|
0.5 |
|
|
|
|
|
|
|
|
1 |
5 |
0 |
5 |
10 |
|
|
|
|
10 |
||||
|
|
|
|
|
|
xi |
|
|
Редактирование графиков. Щелкнем дважды левой кнопкой мышки по полю графика
140
в результате откроется окно Formatting Currently Selected X-Y Plot.
На вкладке X-Y Axes можно менять масштаб по осям пропорциональный, либо Логарифмический (Log scale). Задавать координатную сетку (Grid lines). Задавать нумерацию по осям (Numbered). Отображать маркеры (Show markers). Устанавливать шаг координатной сетки в автоматическом режиме или в ручную (Auto grid). При установки сетки в ручную шаг сетки вводится в позиции Number of grids:. На этой же закладке можно менять стиль отображения системы координат (Axis Stile) и менять масштаб изображения (Equal scales).
На вкладке Trace можно задавать
название графиков ( Legend label), стиль лини графика. Ниже приве-