|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ОСНОВНЫЕ ЗАДАЧИ ЛИНЕЙНОЙ АЛГЕБРЫВЕКТОРЫ 1) Линейные операции над векторами, задаваемыми без слова vector, можно производить без подгрузки пакета linalg. >a:=[1,2,3]; >b:=[1,1,1]; >c:=2*a–3*b; Ответ: c:=[–1,1,3] Для линейных операций над векторами a:=vector([1,2,3]); >b:=vector([1,1,1]); следует подгрузить пакет linalg и выполнять линейные операции с использованием команды оценивания evalm >c:=2*a–3*b; Ответ: c:=2a–3b – отложенная команда >evalm(c); Ответ: [–1,1,3] – вычисление линейной комбинации. 2) Скалярное произведение двух векторов а и b >dotprod(a,b); Здесь векторы могут задаваться в форме >b:=[b1, b2, b3], без слова vector.
3) Нахождение угла между векторами а и b >angle(a,b); Здесь векторы могут задаваться в форме >b:=[b1, b2, b3], без слова vector.
4) Векторное произведение двух векторов а и b >crossprod(a,b); Здесь векторы могут задаваться в форме >b:=[b1, b2, b3], без слова vector.
5) Нахождение базиса для произвольной системы векторов {a, b, c, d} >basis({a, b, c, d});
6) Ортогонализация системы {a, b, c, d} линейно независимых векторов >GramSchmidt({a,b,c,d}); [e1, e2, e3, e4] – система ортогональных векторов.
7) Норма вектора и его нормализация (координаты вектора делятся на его длину) >a:=[3, 4]; a:=[3, 4] задание вектора (можно без слова vector) >norm(a,2); 5 – норма (длина) вектора >normalize(a); нормализация вектора, ответ: [3/5, 4/5].
МАТРИЦЫ 1) Линейная комбинация заданных матриц А и В >evalm(2*A–3*B); Примечание: А+5 вычисляется как А+5*Е Умножение матриц подходящих размеров >evalm(A&*B); Деление на невырожденную матрицу В (умножение справа на В–1) >evalm(A/B); Примечание: команда >evalm(1/B); вычисляет В–1. Рекомендация. Удобно сначала провести все выкладки с матрицами без команды оценивания, а затем выполнить команду оценивания >evalm(…); Например: >((2*A+3)&*B)/C; (при делении ставить скобки!) >evalm(%); 2) Вычисление определителя квадратной матрицы А >det(A);
3) Транспонирование матрицы А >transpose(A);
4) Для данной квадратной матрицы А вычисляется присоединенная матрица В (т.е. транспонированная матрица из алгебраических дополнений) >B:=adj(A);
5) Вычисление обратной матрицы для квадратной матрицы А, если det(A) ¹ 0 >inverse(A);
6) Элементарное преобразование матрицы A: поменять местами m-й и n-й столбцы >swapcol(A, m, n); Аналогичная операция со строками осуществляется командой >swaprow(A, m, n);
7) Элементарное преобразование матрицы A: Умножение n- го столбца на число х >mulcol(A, n, x); Аналогичная операция со строкой производится командой >mulrow(A, n, x);
8) Элементарное преобразование матрицы A: столбец с номером m умножается на число х и прибавляется к столбцу с номером n >addcol(A, m, n, x); Аналогичную операцию со строками производит команда >addrow(A, m, n, x);
9) В матрице А выбирается ненулевой элемент A[m, n] и во всех строках над ним и под ним делаются нули при помощи элементарных преобразований >pivot(A, m, n);
10) Вычеркивание из матрицы А столбцов с номерами от m до n >delcols(A, m..n); Если m=n, то удаляется только один столбец. Аналогичная команда для строк имеет вид >delrows(A, m..n);
11) Приведение матрицы А к ступенчатому виду >A:=matrix(3, 3, [9,8,7,6,5,4,3,2,1]); задание матрицы. >gausselim(A); (в ответе возможны дроби). >ffgausselim(A); (в ответе дроби отсутствуют). >gaussjord(A); приведение матрицы к главному ступенчатому виду. 12) Ранг матрицы А >rank(A); 13) Нахождение характеристического многочлена для квадратной матрицы А >P:=charpoly(A, lambda); (вместо l можно употребить любую другую букву). Команда вычисляет характеристический многочлен матрицы А. Собственные числа матрицы А (корни этого характеристического многочлена) находятся затем командой >solve(P, lambda);
14) Вычисление собственных значений матрицы А >eigenvals(A); Ответ записывается в точном виде, если элементы матрицы заданы точно. Если же элементы матрицы заданы в десятичном виде, то собственные значения будут вычисляться приближенно.
15) Вычисление собственных значений (с указанием кратности) и соответствующих собственных векторов >A:=matrix(2, 2, [5,4,3,9]): задание матрицы А >eigenvects(A); [3, 1, {[–2, 1]}], [11, 1, {[1, 3/2]}]. Здесь 3 – собственное значение, 1 – его кратность, [–2, 1] – собственный вектор.
СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ 1) По данной системе S сформировать матрицу системы и расширенную матрицу системы >S:=[2*x+3*y+4*z+5*t=6, x+y+z+t+a, x–y+z–t]; задание системы. Отсутствие знака = означает равенство выражения нулю, квадратные скобки можно заменить фигурными >V:=[x, y, z, t]; список (list) неизвестных. >genmatrix(S, V); матрица системы. Элементы матрицы соответствует порядку неизвестных в списке >genmatrix(S, V, flag); расширенная матрица системы. 2) По данной матрице А и неизвестным X:=[…] написать однородную систему уравнений >A:=matrix(2,3,[1,2,3,4,5,6]); >X:=[u,v,w]; Число неизвестных равно числу столбцов! >geneqns(A,X); ответ: {u+2v+3w=0, 4u+5v+6w=0} Если неизвестные не задавать, то команда >geneqns(A,z); составляет систему {z1+2z2+3z3=0, 4z1+5z2+6z3=0} Если задать ещё вектор b правых частей, то можно составить неоднородную систему >b:=vector([7,8]); Число координат вектора b равно числу строк! >geneqns(A,x,b); ответ: {4x1+5x2+6x3=8, x1+2x2+3x3=7}
3)Нахождение общего решения (с параметрами x1, x2, x3, …) для системы линейных уравнений с заданной расширенной матрицей А ступенчатого вида >X:=backsub(A,false,x); (вместо х можно использовать другую букву) Пример. >A:=matrix(2, 5, [1,2,3,4,10,0,0,1,2,3]); >P:=backsub(A,false,x); P: = [–2x2+2x1+1, x2, –2x1+3, x1]. Для получения какого-нибудь частного решения нужно придать свободным неизвестным (т.е. параметрам x[1], x[2]) какие-нибудь значения, т.е. выполнить, например, команду >subs(x[1]=1,x[2]=1,%); [1,1,1,1] Тот же результат можно получить командами >x[1]:=1: x[2]:=1: [P[n]$n=1..4]; [1,1,1,1]
4) Решение линейной системы Ax=b (здесь вектор b задается без слова vector) >linsolve(A, b); Если система несовместна, то нет никакого ответа. При совместности выдается решение системы в параметрическом виде, где параметры имеют неудобный вид _t1, _t2,... >A:=matrix([[1,2,3],[4,5,6],[7,8,9]]); >b:=[6,15,24]; >linsolve(A,b); Ответ: [_t1 3–2_t1 _t1] К сожалению, с такими параметрами нельзя использовать команду subs(...) (см. предыдущий пример) для получения частного решения. Поэтому эту команду лучше применять для случая, когда существует единственное решение системы. В данном же случае для решения системы следует использовать команду >linsolve(A,b,’r’,u); [u1 3–2u1 u1] общее решение с параметром u1 >subs(u[1]=2,%); [2 –1 2] частное решение
5) Матричное уравнение АХ=В решается такой же командой >linsolve(A,В); Для решения матричного уравнения ХА=В нужно решить командой linsolve транспонированное уравнение АТХТ=ВТ и затем транспонировать результат. Если матрицы А и В квадратные, то уравнение ХА=В решается командой >X:=evalm(B/A); а уравнение АХ=В решается командой >X:=evalm(1/A&*B);
6) Решение переопределенной системы Ах = b по методу наименьших квадратов >A:=matrix(3, 2, [2,3,1,1,1,–1]); задание матрицы А системы уравнений. >b:=[4,2,3]; задание правых частей вектором b (можно без слова vector), >leastsqrs(A, b); нахождение решения системы, ответ: [77/30, –2/5].
ЭЛЕМЕНТЫ ТЕОРИИ ПОЛЯ 1) Вычисление ротора векторного поля >F:=[x*y, y*z, z*x]; задание пространственного векторного поля, >u:=[x, y, z]; задание переменных, по которым будет вычисляться ротор, >rotF:=curl(F,u); вычисление ротора, ответ: rotF:=[–y,–z,–x].
2) Вычисление дивергенции векторного поля >F:=[x*y, y*z, z*x]; задание пространственного векторного поля, >u:=[x, y, z]; задание переменных, по которым будет вычисляться дивергенция, >divF:=diverge(F,u); вычисление дивергенции, ответ: divF: = y+z+x
3) Вычисление градиента скалярной функции >F:=x*y*z; задание скалярной функции, >V:=[x, y, z]; задание переменных, по которым будет вычисляться градиент, >gradF:=grad(F,V); вычисление градиента, ответ: gradF: = [yz, zx, xy].
4) Матрица Вронского от функций f(x), g(x), h(x) находится по команде >A:=Wronskian([f(x), g(x), h(x)],x); Определитель Вронского вычисляется затем по команде >det(A); 5) Оператор Лапласа от данной функции F(x,y,z) по данным переменным [x,y,z] >laplacian(F(x,y,z),[x,y,z]); 6) Якобиан от данной системы функций [ u(x,y,z), v(x,y,z), w(x,y,z) ]по переменным [x,y,z] >jacobian([ u(x,y,z), v(x,y,z), w(x,y,z) ], [x,y,z]); 7) Нахождение потенциала векторного поля. >f: = [P(x,y), Q(x,y)]; – задание векторного поля, >potential(f, [x,y],’F’); – проверка поля на потенциальность (true, false) и вычисление потенциала F векторного поля f, >F; – вывод потенциала на экран. Аналогичным образом находится потенциал для трехмерного поля. >f:=[P(x,y,z),Q(x,y,z),R(x,y,z)]; >potential(f, [x,y,z], ‘F’); >F;
ЛИНЕЙНЫЕ СТРУКТУРЫ НА ПЛОСКОСТИ Задание точки. Точка на плоскости задается двумя координатами в квадратных скобках >a:=[3, 5]; B1:=[–5, 2/3]; и т.д. Названия точек – это произвольные сочетания букв и цифр. Запрещены названия D, I, O. Вместо них можно писать d, i, o. Координаты точек должны быть рациональными или десятичными. Запрещены координаты типа , ln(5). Следует писать в таких случаях , ln(5.0). Точка наносится на плоскость в виде кружочка командой >PLOT(POINTS(a, B1, [2, 3]), OPTIONS); Здесь a, В1 – ранее заданные точки, [2, 3] – точка, которая ранее не была определена. Цвет точки определяется опцией COLOR(HUE, n), где число п задает цвет положением на «радужной» шкале красный оранжевый желтый зелёный голубой синий фиолетовый малиновый n = 0.0 0.1 0.15 0.3 0.45 0.6 0.8 0.9 Примечание. Можно сначала заранее задать множество точек командой >W:=POINTS(a, B1, [2, 3]); а уже затем нанести их на плоскость командой >PLOT(W); ПРИМЕЧАНИЕ. Опции точки (цвет,форма) и других объектов можно заранее не задавать, а щелкать по объектам правой мышью и выбирать опцию из появившейся таблицы.
Ломаная линия. Ломаная линия задается командой >P:=CURVES([a,b,c,d]); где a,b,c,d – ранее заданные точки. На плоскость ломаная линия наносится командой >PLOT(P, OPTIONS); В качестве опций можно рассматривать толщину линии – THICKNESS(n). Чем больше п, тем больше толщина ломаной. Наряду с опцией цвета COLOR(HUE, n) можно определять цвет, задавая интенсивности цветов: красного (r), зеленого (g), синего (b) – COLOR(RGB, r, g, b). Примечание. Можно сразу задать несколько ломаных >P:=CURVES([a,b,c,d], [p,q,r,s]); а затем построить их одной командой. >PLOT(P, OPTIONS);
Многоугольник (замкнутая ломаная линия). Пусть заданы точки a, b, c, d. Тогда многоугольник, образованный отрезками [a, b], [b, c], [c, d], [d, a] задается командой >Q:=POLYGONS([a,b,c,d]); На плоскости этот многоугольник рисуется командой >PLOT(Q, OPTIONS); Граница многоугольника рисуется черным цветом, толщина границы задается опцией THICKNESS(n). Опция цвета дает заливку многоугольника этим цветом, границы остаются черными. Этот же многоугольник можно нарисовать командой >PLOT(CURVES([a,b,c,d,a]), OPTIONS); В этом случае опция цвета не дает заливку, а раскрашивает только границу многоугольника. Примечание. Можно сразу задать несколько многоугольников >Q:=POLYGONS([a,b,c], [p,q,r,]); а затем построить их одной командой. >PLOT(Q, OPTIONS);
Надпись в данной точке. Текст “KANT” в точке [3, 5] задается командой >R:=TEXT([3, 5], KANT, OPTIONS); После этого текст наносится на плоскость командой PLOT(R); В качестве опций можно брать опцию цвета надписи, а также опции горизонтального и вертикального выравнивания текста:
ALIGNLEFT, ALIGNRIGHT – надпись слева или справа от точки ALIGNABOVE, ALIGNBELOW – надпись сверху или снизу от точки. Опции горизонтального и вертикального выравнивания можно применять одновременно
Совмещение объектов на одном рисунке. Ранее заданные объекты P, Q, R совмещаются на одном рисунке командой >PLOT(P,Q,R);
ЛИНЕЙНЫЕ СТРУКТУРЫ В ПРОСТРАНСТВЕ Задание точки. Точка в пространстве задается тремя координатами в квадратных скобках >a:=[3, 5, –1]; B1:=[–5, 2/3, 0]; и т.д. Названия точек – это произвольные сочетания букв и цифр. Запрещены названия D, I, O. Вместо них можно писать d, i, o. Координаты точек должны быть рациональными или десятичными. Запрещены координаты типа , ln(5). Следует писать в этом случае , ln(5.0). Точка наносится на плоскость в виде кружочка командой >PLOT(POINTS(a, B1, [2, 3,5]), OPTIONS); где a, В1 – ранее заданные точки, [2, 3, 5] – точка, которая ранее не была определена.
Отрезки определяются двумя точками. Множество отрезков задается командой >P:=CURVES([a,b],[c,d],[e,f]); Затем эти отрезки строятся в пространстве командой >PLOT3D(P, OPTIONS);
Многоугольники. Множество многоугольников определяется командой >Q:=POLYGONS([a,b,c],[p,q,r]); Затем эти многоугольники строятся в пространстве командой >PLOT3D(Q, OPTIONS);
Совмещение объектов на одном рисунке. PLOT3D(P, Q, OPTIONS); Задача. Построить плоскость z=10 – 2x + y над областью { 1 ≤ x ≤ 3, x £ y £ 2x } и сечение соответствующей усеченной призмы плоскостью х = 2. > a:=[1,0,0]:b:=[2,0,0]:c:=[3,0,0]: a1:=[1,1,0]:b1:=[2,2,0]:c1:=[3,3,0]: a2:=[1,2,0]:b2:=[2,4,0]:c2:=[3,6,0]: A1:=[1,1,9]:B1:=[2,2,8]:C1:=[3,3,7]: A2:=[1,2,10]:B2:=[2,4,10]:C2:=[3,6,10]:o:=[0,0,0]: > P:=CURVES([o,c1],[o,c2],[a,a2],[b,b2],[c,c2], [a1,A1],[a2,A2],[c1,C1],[c2,C2]): > Q:=POLYGONS([A1,A2,C2,C1],[b1,B1,B2,b2]): > PLOT3D(P,Q,THICKNESS(4),COLOR(RGB,0,0,1));
plottools – пакет для изображения некоторых геометрических объектов подгрузка пакета >with(plottools): 1. Дуга окружности с центром в точке (Xc, Yc), радиуса R, охватывающая угол (a,b). >L:=arc([Xc,Yc],R, a..b): задание дуги. >plots[display](L,options); изображение этой дуги Примечание. Если произвести ещё подгрузку with(plots), то вместо последней команды можно выполнить команду >display(L,options); Другие объекты изображаются аналогично. 2. Окружность с центром в точке (Xc, Yc), радиуса R. >C:=circle([Xc,Yc],R): задание окружности. >plots[display](C,options); изображение этой окружности Примечание. Если произвести ещё подгрузку with(plots), то вместо последней команды можно выполнить команду >display(С,options);
3. Конус с вершиной и точке ( a,b,c ), с радиусом основания R и высотой Н (возможно H< 0). >C:=cone([a,b,c],R,H): задание конуса. >plots[display](C,options); изображение этого конуса. Примечание. Если произвести ещё подгрузку with(plots), то вместо последней команды можно выполнить команду >display(С,options);
4. Отрезок между точками А( a1,a2 ), B( b1,b2 ) >L:=line([ a1,a2 ], [ b1,b2 ]): задание отрезка. >plots[display](L,options); изображение этого отрезка. Примечания. а)Если произвести ещё подгрузку with(plots), то вместо последней команды можно выполнить команду >display(L,options); б) Если точки задаются тремя координатами, то отрезок изображается в пространстве. 5. Многоугольник ABCD P:=polygon([[a1,a2],[b1,b2],[c1,c2],[d1,d2]]): задание многоугольника. >plots[display](Р,options); изображение этого многоугольника. Примечания. а)Если произвести ещё подгрузку with(plots), то вместо последней команды можно выполнить команду >display(Р,options); б) Если точки задаются тремя координатами, то многоугольник изображается в пространстве. в) Опция color дает цвет заливки многоугольника. 6. Точки A(a1,a2), B(b1,b2) >P:=point([a1,a2],options), point([b1,b2],options): задание точек. В качестве опций можно задавать цвет (color=...), форму точки (symbol=circle, box, diamond), размер точки (symbolsize=30). >plots[display](P); изображение этих точек. Примечание. Если произвести ещё подгрузку with(plots), то вместо последней команды можно выполнить команду >display(Р); Если заданы несколько объектов, то они изображаются командой >plots[display]([P,Q,L]); Другте фигуры см. в пакете plottools.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.028 сек.) |