WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 3 | 4 || 6 |

x2 + [a = ] (%) 2x Программа находит также комплексные корни. Найдем все три корня урав нения x3 = 1. Найденные корни запишем под именемroots:

--> roots:solve(x3=1,x);

3 i - 1 3 i + [x =, x = -, x = 1] (%) 2 Командаsolveрезультат выдает в виде списка (матрицы с одной строкой).

Если нам нужен лишь второй корень, то его можно получить командой --> roots[2];

3 i + x = (%) Этот корень записан в виде выражения. Если для дальнейших расчетов нам требуется лишь его числовое значение (то есть лишь правая часть выражения, после знака=), то для этого используется командаrhs():

--> rhs(roots[2]);

3 i + (%) 20.2. Аналитическое решение систем уравнений. Командаsolve может решать и системы уравнений. Уравнения и переменные пишутся в квад ратных скобках через запятую. Решим систему 2x + 5y = 9, x2 + y2 = 5.

Для этого вначале запишем исходные уравнения под именамиeq1иeq2:

--> eq1:2*x+5*y=9;eq2:x2+y2=5;

Далее, для решения системы используем командуsolve():

--> solve([eq1,eq2],[x, y]);

22 [[x = 2, y = 1], [x = -, y = ]] (%) 29 Если система уравнений линейна, можно решать и недоопределенные систе мы. Решим систему x + y + z = 3, x + 2y + 3z = 6.

--> eq1:x+y+z=3;eq2:x+2*y+3*z=6;

--> solve([eq1,eq2],[x, y, z]);

[x = %r1, y = 3 - 2%r1, z = %r1] (%) Мы видим, решение нашлось с точностью до постоянной%r1.

20.3. Численное нахождение корней уравнений. Точное решение удается найти не всегда. Попробуем найти корни уравнения x5 - 6x + 2 = 0:

--> eq:x5-6*x+2=0;solve(eq,x);

[0 = x(%) - 6 x + 2] В этом случае Maxima решить уравнение не смогла. Корни этого уравнения можно найти численно. Если требуется найти корни полинома (как в нашем случае) можно использовать командуallroots(). Найдем все корни уравнения eq:

--> allroots(eq);

[x = 0.33402, x = -1.63921, x = 1.57561 i-0.08112, x = -1.57561 i(%) - 0.08112, x = 1.46744] Так как наше уравнение было пятой степени, программа нашла все пять корней, три из них – вещественные, а два – комплексные.

Для поиска корней произвольной функции используется команда find_root(). Этой команде надо указать отрезок (то есть наименьшее и наибольшее значение x), на котором расположен корень уравнения. Если на этом отрезке корней нет, Maxima выдаст ошибку. Если на отрезке несколько корней, то Maxima найдет лишь один из корней или выдаст ошибку. Поэтому перед использованием команды find_root()необходимо провести дополни тельное исследование, например, построить график функции и убедиться, что на задаваемом отрезке расположен лишь один корень.

Найдем корень уравнения cos(x) = x2 + x на отрезка x [0, 3]:

--> find_root(cos(x)=x2+x,x, 0, 3);

0.(%) Если взять другой отрезок, например, [-5, 0], то можно найти еще один корень:

--> find_root(cos(x)=x2+x,x, -5, 0);

(%) - 1.20.4. Численное решение систем уравнений. Для численного ре шения систем уравнений в программе Maxima используется метод Ньютона. Для этого необходимо вначале загрузить пакетmnewtonкомандой:

--> load(mnewton);

Решим систему x + 3 ln x - y2 = 0, 2x2 - xy - 5x + 1 = 0.

Запишем исходные уравнения под именамиeq1иeq2:

--> eq1:x+3*log(x)-y2;eq2:2*x2-x*y-5*x+1;

Командаsolveданную систему решить не может и поэтому найдем реше ние численно. Для этого используется командаmnewton. Этой команде необхо дима начальная точка. Если корней у системы несколько, численно найдется лишь один корень, обычно ближайший к начальной точке. Если начальная точ ка расположена далеко от корней, решение может и не найтись. Для решения нашей системы в качестве начальной точки возьмем x = 5 и y = 5:

--> mnewton([eq1,eq2],[x,y],[5,5]);

[[x = 3.7568, y = 2.7798]] (%) Сменив начальную точку на x = 1 и y = -1, найдем другое решение системы:

--> mnewton([eq1,eq2],[x,y],[1,-1]);

[[x = 1.3735, y = -1.525]] (%) 20.5. Задания к теме.

1. Решить уравнение x3 - 2a2x + a3 = 0.

2. Численно найти оба корня уравнения ex = x + 3.

3. Найти решение систем уравнений:

2x - 4y + 3z = R, y = x2 - 1, a) б) x - 2y + 4z = 3, x = y2 - 1.

3x - y + 5z = 2.

y 3x - = 5, x 4. Найти численное решение системы:

2y + x = 4.

5+1 a 5-1 a ( ) Ответы: 1. Уравнение имеет три корня: x1 = -( ), x2 =, x3 = 2 = a; 2. x1 = -2.9475, x2 = 1.5052; 3. а) система имеет 4 решения: x1 = -1, 5-1 5+1 6 R-y1 = 0; x2 = 0, y2 = -1; x3 = y3 = - ; x4 = y4 = ; б) x =, 2 2 y = -7 R-7, z = -R-6; 4. x = 1.5986, y = 1.2639.

25 § 21. Построение графиков 21.1. Построение графиков явно заданных функций. Для постро ения графиков есть командыplot2d()иwxplot2d(). Первая строит график в отдельном окне, вторая – встраивает в лист вычислений. Заметим, при открытом окне с графиком дальнейшие вычисления в программе невозможны, поэтому это окно после просмотра графика необходимо закрыть.

Построим график функции y = sin(x2) на отрезке x [-5, 5]:

--> plot2d(sin(x2),[x,-5, 5])$ --> wxplot2d(sin(x2),[x, -5, 5])$ 0. 0. 0. 0. -0.-0.-0.-0.--4 -2 0 2 x Интервал изменения ординаты программа выбирает сама, исходя из мини мальных и максимальных значений функции. Этот интервал можно задать и самому. Построим график y = на отрезке x [-5, 5] для интервала измене xния y [0, 5]:

--> wxplot2d(1/(x2),[x, -5, 5], [y, 0, 5])$ Для построения на одном чертеже нескольких графиков исходные функции записывают через запятую в квадратных скобках:

--> wxplot2d([sqrt(x),x, sin(x)],[x, 0, 5])$ sqrt(x) x sin(x) - 0 1 2 3 4 x 21.2. Построение графиков параметрически заданных функ ций. Если функция задана в параметрическом виде, используется опция sin(x ) parametric. Построим график функции x(t) = cos 3t, y(t) = sin 4t в интер вале изменения параметра t [-, ]:

--> wxplot2d([parametric,cos(3*t),sin(4*t), [t,-%pi,%pi],[nticks,100]])$ Параметрnticksзадает количество точек, по которым строится график.

Чем больше это значение, тем более гладким будет построенная кривая, но при этом увеличивается время, необходимое для ее построения.

Частным случаем параметрически задания функции является задание в по лярной системе координат. Построим график кардиоиды r() = 1 - sin :

--> r:1-sin(t);

--> wxplot2d([parametric,r*cos(t),r*sin(t), [t,-%pi,%pi],[nticks,100]])$ 21.3. Построение графиков дискретных множеств. Еще одной оп цией командыplot2dявляетсяdiscrete. Она строит график по заданному на бору точек. Зададим координаты шести точек под именем pts и построим график линии, их соединяющий:

--> pts:[[0,0],[1,6],[2,9],[3,11],[4,13],[5,14]];

--> wxplot2d([discrete,pts]);

21.4. Опции команды plot2d. Командаplot2dимеет множество оп ций, позволяющих настроить внешний вид чертежа. Для знакомства с некото рыми из них наберем команду:

--> plot2d([[discrete,pts],6*sqrt(x)],[x,0,5], [y,0,16],[style,[points,4,9,12],[lines,3,4]], [legend,"Experiment","Theory"], [xlabel,"Length(cm)"],[ylabel,"Time (s)"])$ Эта команда строит график двух функций, первая задана дискретным на бором точекpts, вторая функцией 6 x.

Experiment Theory 0 1 2 3 4 Length (cm) Опции, которые были использованы при построении:

style – задает стиль линии. Возможные значения lines, points, linespoints. Командаlinesимеет две дополнительные числовые опции, зада ющие толщину линии и ее цвет. У командыpointsтри опции, задающие размер символа, его цвет и его форму. Командаlinespointsимеет 4 опции: толщина линии, размер символа, цвет, форма.

legend– задает подписи к линиям графиков. Команда[legend,false] убирает окно с подписями линий графиков.

xlabel– задает подпись к оси абсцисс.

ylabel– задает подпись к оси ординат.

Другие возможные опции:

[box, false]– отменяет построение рамки вокруг рисунка с графиками.

[axes,false]– отменяет построение осей координат.

[logx]– ось абсцисс будет логарифмической.

[logy]– ось ординат будет логарифмической.

21.5. Задания к теме.

1. На одном чертеже постройте графики функций y = arctg x и y = e-x (x [-4, 4]).

x(t) = cos t + cos 5t, 2. Постройте график функции: t [0, 2].

y(t) = sin t - sin 5t, 3. Постройте пятиконечную звезду, задав координаты ее вершин в виде на бора точек.

Time (s) § 22. Построение поверхностей 22.1. Построение явно заданных поверхностей. Для построения трехмерной поверхности функции двух аргументов есть командыplot3d()и wxplot3d(). Если для построения использовалась командаplot3d(), то нари сованную поверхность можно изучить с разных сторон, вращая его с помощью мышки. Построим с помощью этой команды график функции z = sin x sin y на прямоугольнике x [-, ], y [-, ]:

--> plot3d(sin(x)*sin(y),[x,-%pi,%pi],[y,-%pi,%pi])$ sin(x)*sin(y) 0. 0. 0. 0.z -0.-0.-0. -0. -1- -y -1 - - x - Диапазон изменения значений функции z [z0, z1] можно выбирать самому, для этого следует к аргументам команды дописать опцию “[z, z0, z1]”.

На одном чертеже можно разместить графики двух функций, если задать их через запятую в квадратных скобках. Построим две поверхности, заданные функциями f1(x, y) = x + y + 4 и f2(x, y) = 10e-(x +y2):

--> plot3d([x+y+4,10*exp(-(x2+y2)),[x,-3,3], [y,-3,3]],[palette,false])$ Использованная здесь опция[palette,false]отключает закраску по верхности.

10*%e(-y2-x2) y+x+ z -- -y -- - x 3-22.2. Построение параметрически заданной поверхности. Если поверхность задана параметрически (от двух параметров u и v), зависимости x(u, v), y(u, v) и z(u, v) следует писать в квадратных скобках через запятую.

В качестве примера построения параметрически заданной поверхности рассмот рим пример построения однополостного гиперболоида:

--> plot3d([sqrt(1+v2)*cos(u),sqrt(1+v2)*sin(u),v], [u,0,2*%pi],[v,-3,3])$ Parametric function z - - -- ---1 y - 0 - - x 4-22.3. Опции команды plot3d. Опцияgridзадает число точек разби ения по каждой переменной. Чем больше задаваемое число, тем более гладкой будет построенная поверхность, но увеличивается время ее построения. Пример построения первой поверхности с разбиением 100 100:

--> plot3d(sin(x)*sin(y),[x,-%pi,%pi],[y,-%pi,%pi], [grid,100,100])$ Опцияcolorзадает два цвета, в которую следует окрасить нижнюю и верх нюю сетку поверхности. Для того, чтобы она сработала, необходима отключить закраску опцией[palette,false]:

--> plot3d(sin(x)*sin(y),[x,-%pi,%pi],[y,-%pi,%pi], [palette,false],[color,red,green])$ Опция[mesh_lines_color,false]отключает прорисовку сетки:

--> plot3d(sin(x)*sin(y),[x,-%pi,%pi],[y,-%pi,%pi], [mesh_lines_color,false])$ 22.4. Задания к теме.

1. На одном чертеже постройте обе части двухполостного гиперболоида z = = ± 1 + x2 + y2 (x [-3, 3], y 3]).

[-3, x = (2 - cos v) cos u - 1, 2. Постройте график тора: в пределах u y = (2 - cos v) sin u - 1, z = sin v [0, 2], v [0, 2].

§ 23. Вычисление пределов 23.1. Командаlimit. Для вычисления пределов в программе Maxima sin x есть командаlimit(). Найдем первый замечательный предел lim :

xx --> limit(sin(x)/x,x, 0);

(%) Для обозначения плюс/минус бесконечности используются символы x inf/minf. Найдем второй замечательный предел lim 1 + :

x x --> limit((1+1/x)x,x, inf);

e (%) Можно находить и односторонние пределы. Для этого в аргументах команды limit()надо дописатьplusдля правосторонних иminusдля левосторонних.

1 Вычислим lim, lim :

x0+0 x0-x x --> limit(1/x,x, 0, plus);

(%) --> limit(1/x,x, 0, minus);

(%) - 23.2. Задания к теме.

1. Найти пределы:

sin 4x а) lim, б) lim (sin x)tg x xx/x + 1 - 2. Вычислить 1 + cos 2x а) lim, б) lim x2 - ax - x2 + ax.

xx/2- - 2x Ответы: 1. а) 8; б) ; 2. a) 2; б) a.

e § 24. Дифференцирование.

24.1. Вычисление производной явной функции. Для нахождения производной в программе Maxima есть командаdiff(). Найдем y и y функции y = x5:

--> f: x5;

x(%) --> diff(f,x);

5 x(%) --> diff(f,x, 2);

20 x(%) Второй аргумент этой команды определяет переменную дифференциро вания, а третий – порядок производной. Командаdiffработает и в случае функции многих переменных для нахождения частных производных. Вычислим 3f(x, y) для функции f(x, y) = x5y3:

x2y --> f: x5*y3;

x5 y(%) --> diff(f,x, 2, y, 1);

60 x3 y(%) Вычисленную производную программа Maxima выводит в непреобразован ном виде. Поэтому для записи производной в удобном виде полученную произ водную преобразовывают с помощью команд § 18.

24.2. Нахождение производной неявной функции. По умолчанию все переменные в Maxima считаются независимыми. Поэтому результат выпол нения команды --> diff(y,x);

будет нулевой (%) Чтобы декларировать, что одна переменная зависит от другой используется командаdepends():

--> depends(y,x);

Теперь результат выполнения команды --> diff(y,x);

будет другой:

d y (%) d x Это используется при нахождении производной неявной функции. Найдем y неявно заданной функции x2 + y2 = 1. Зададим вначале ее под именемf:

--> f:x2+y2=1;

y2 + x2 = (%) Производнуюfзапишем под именемg:

--> g:diff(f,x);

d 2 y y + 2 x = (%) d x Осталось из равенстваgвыразить производную. Для этого используем ко мандуsolve():

--> solve(g,diff(y,x));

d x [ y = (%) - ] d x y 24.3. Задания к теме.

1. Найти производные функций:

x - y = 1 + sin 6x, y = arcsin, s = ln( e2t + 1) - arctg(et).

x 2. Найти производную 6 порядка для функции y = e-x sin x.

3. Найти y для неявно заданной функции arctg y = x + y.

3 cos(6x) (et-1)et Ответы: 1. ; ; ; 2. 8e-x cos x; 3. -y +1.

e2t+1 y2x-1|x| sin(6x)+§ 25. Интегрирование 25.1. Вычисление неопределенных интегралов. Для вычисления интегралов используется командаintegrate(). Вычислим ln3 xdx:

--> integrate(log(x)3,x);

x log (x)3 - 3 log (x)2 + 6 log (x) - (%) Также, как и в случае дифференцирования, результат интегрирования Maxima выводит в непреобразованном виде. Поэтому для получения результа та в более удобном виде полученную функцию преобразовывают с помощью sin3 x команд § 18.. Вычислим, например, dx:

cos3 x --> f: sin(x)3/cos(x)3;

--> F:integrate(f,x);

log sin(x)2 - (%) 2 sin(x)2 - --> F1: trigsimp(F);

cos(x)2 log -cos(x)2 + (%) 2 cos(x)--> F2: expand(F1);

log -cos(x)+ (%) 2cos(x)Если результат зависит от значений постоянных, Maxima спросит об этом пользователя. Так, в следующем примере, необходимо ввести “p” (positive) в случаеa>0 или “n” (negative) в случаеa<0.

--> integrate(1/(x2-a),x);

Is a positiveor negativep;

2 x-a log 2 x+2 a (%) 2 a Выбираем другой вариант:

--> integrate(1/(x2-a),x);

Is a positiveor negativen;

x atan -a (%) -a 25.2. Аналитическое вычисление определенных интегралов. В случае определенного интеграла в командеintegrateдописываем пределы ин тегрирования. Найдем dx:

x3 + --> integrate(1/(x3+1),x, 0, 2);

log (3) + (%) 2 Пределы интегрирования могут быть и бесконечными. Вычислим интеграл e-x dx:

--> integrate(exp(-x2),x, minf,inf);

(%) Некоторые интегралы Maxima может записать через специальные функции.

Для вычисления численного значения таких интегралов используется команда numer. Вычислим S = dx:

ln x --> S: integrate(1/log(x),x, 2, 3);

gamma_incomplete (0, -log (2)) (%) gamma_incomplete (0, -log (3)) --> S, numer;

1.(%) 25.3. Численное вычисление определенных интегралов. Если определенный интеграл не вычисляется, то Maxima просто запишет его в сим вольном виде. Можно найти приближенное значение интеграла численными ме тодами. Это можно сделать командойquad_qags(). Вычислим ln x ex dx:

--> quad_qags(log(x)*exp(x2),x, 1, 2);

[8.057, 8.945 10-14, 21, 0] (%) Maxima выведет на экран четыре числа. Первое число, 8.057 – приближен ное значение интеграла, второе, 8.945 · 10-14 – точность вычисления, третье, – число использованных разбиений, четвертое, 0 – код ошибки. Если код ошибки равен нулю, значит проблем при вычислении интеграла не возникло.

25.4. Задания к теме.

1. Вычислить неопределенные интегралы:

dx b2 - x, dx, sin6 x dx.

x4 + ax3 (x2 + b2)2. Вычислить определенные интегралы:

a dx, dx, ln(1 + sin2 x)dx.

a2 + x2 x(1 + x2) a 1 x(3x4+8b2x2+9b4) 1 x 2x-a 1 x 5 Ответы: 1. ln + ; arctg + ; x - sin 2x + a3 x+a 2a2x2 4b5 b 12b4(x2+b2)3 16 3 1 ln + sin 4x - sin 6x; 2. ; 0.3465; 1.1827.

64 192 12a § 26. Аналитическое решение дифференциальных уравнений и систем 26.1. Решение дифференциального уравнения первого поряд ка. По умолчанию все переменные в Maxima являются независимыми. Поэтому, перед тем как приступить к заданию и решению дифференциального уравнения y = f(x, y), необходимо указать, что переменная y зависит от x:

--> depends(y,x);

Pages:     | 1 |   ...   | 3 | 4 || 6 |






© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.