АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ОСНОВНЫЕ ЗАДАЧИ ЛИНЕЙНОЙ АЛГЕБРЫ

Читайте также:
  1. I СИТУАЦИОННЫЕ ЗАДАЧИ ПО ПРОФИЛЬНЫМ РАЗДЕЛАМ
  2. I. ОСНОВНЫЕ ЦЕЛИ, ЗАДАЧИ И ПРИНЦИПЫ ДЕЯТЕЛЬНОСТИ КПРФ, ПРАВА И ОБЯЗАННОСТИ ПАРТИИ
  3. I. Цель и задачи изучения дисциплины
  4. II. КРИТИКА: основные правила
  5. II. Основные модели демократического транзита.
  6. II. ЦЕЛИ И ЗАДАЧИ
  7. II. Цели и задачи Конкурса
  8. II. Цели и задачи учебно-ознакомительной практики
  9. II. ЦЕЛИ, ЗАДАЧИ И НАПРАВЛЕНИЯ ДЕЯТЕЛЬНОСТИ КЛУБА
  10. II. ЦЕЛИ, ЗАДАЧИ, ПРЕДМЕТ И ВИДЫ ДЕЯТЕЛЬНОСТИ ОРГАНИЗАЦИИ
  11. III. Задачи ОЦП
  12. III. Основные задачи Управления

ВЕКТОРЫ

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.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.028 сек.)