2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3  След.
 
 Re: Несколько вопросов по программе Maple
Сообщение22.07.2023, 18:22 
Вопрос не понял. Может базис?

Старый пакет (deprecated): linalg[basis]
Код:
> M:= matrix([[1,1,0], [0,0,1], [1,1,1]]): # С Matrix также работать в Maple 7 будет, но не будет в CW Maple 15.
> linalg[basis](M, 'rowspace');
          [[1,1,0], [0,0,1]]
Современный пакет LinearAlgebra[Basis]
Код:
> M:= Matrix([[1,1,0], [0,0,1], [1,1,1]]):
> with(LinearAlgebra):
> Basis([seq(Row(M, i), i=1..op(1, M)[1])]);
           [[1,1,0], [0,0,1]]

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение23.07.2023, 14:04 
Если нужны все линейно независимые комбинации строк, то предполагаю, можно попробовать менять порядок в списке заданных векторов.

Например. Пусть имеется матрица
\left( \begin{array}{ccс} 1 & 3 & 2 \\ 
2 & -1 & 3\\
3 & -5 & 4\\
1 & 17 & 4\end{array} \right)$
Третья строка является удвоенной второй минус первой: $v_3 = 2v_2 - v_1$. Четвертая строка является упятерённой первой минус удвоенной второй: $v_4 = 5v_1 - 2v_2$. Т.е. линейно-независимыми строками будут первая и вторая. Но возможны и другие комбинации линейно независимых строк.
Код:
> with(LinearAlgebra):
> N:= RowDimension(M):
> IndList:= combinat[permute](N):
> res:= {}:
> for k from 1 to nops(IndList)
     do
       r := Basis([ seq(Row(M, i), i=IndList[k])]);
       res:= res union {{convert(r[1], list), convert(r[2], list)}};
     end:
     res;
    {{[3,-5,4], [1,3,2]}, {[2,-1,3], [1,3,2]}, {[3,-5,4], [1,17,4]}, {[3,-5,4], [2,-1,3]}, {[2,-1,3], [1,17,4]}, {[1,3,2], [1,17,4]}}

Это проверить, конечно, надо. Что-то типа такого
Код:
> M:= Matrix([[1, 1, 0], [0, 0, 1], [1, 1, 1], [0, 0, 0]]):
> with(LinearAlgebra):
> N:= RowDimension(M):
> IndList:= combinat[permute](N):
> res:= {}:
> for k from 1 to nops(IndList)
     do
       r := Basis([ seq(Row(M, i), i=IndList[k])]);
       res:= res union {{convert(r[1], list), convert(r[2], list)}};
     end:
    res;
       {{[1, 1, 1], [0, 0, 1]}, {[0, 0, 1], [1, 1, 0]}, {[1, 1, 1], [1, 1, 0]}}

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение27.07.2023, 02:11 
GAA в сообщении #1602185 писал(а):
Например. Пусть имеется матрица
$\left( \begin{array}{ccс} 1 & 3 & 2 \\ 
2 & -1 & 3\\
3 & -5 & 4\\
1 & 17 & 4\end{array} \right)$
Третья строка является удвоенной второй минус первой: $v_3 = 2v_2 - v_1$. Четвертая строка является упятерённой первой минус удвоенной второй: $v_4 = 5v_1 - 2v_2$.

И в случае этой матрицы команда должна выдать, например, первую и вторую строки матрицы. Но только это должны быть линейно независимые точно строки этой матрицы, а не 2, пусть и независимых вектора, но являющихся такими линейными комбинациями строк этой матрицы, что они уже не являются строками этой матрицы.

-- 27.07.2023, 03:16 --

GAA в сообщении #1602185 писал(а):
Если нужны все линейно независимые комбинации строк,

Хотя бы одну комбинацию строк, но максимальную.

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение27.07.2023, 06:18 
GAA в сообщении #1602185 писал(а):
{[2,-1,3], [1,3,2]}
Sinoid в сообщении #1602658 писал(а):
И в случае этой матрицы команда должна выдать, например, первую и вторую строки матрицы.
Так в случае указанной матрицы «команда» выдала? Или я что-то не так понял? В этом случае можно (конкретный) пример?

-- Thu 27.07.2023 05:40:45 --

Sinoid в сообщении #1602658 писал(а):
Хотя бы одну комбинацию строк, но максимальную.
Так в сообщении post1602101.html#p1602101 команда приведена. Проверили? Если что-то не так, то можно (конкретный) пример?

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение27.07.2023, 14:54 
GAA в сообщении #1602679 писал(а):
Так в сообщении post1602101.html#p1602101 команда приведена. Проверили? Если что-то не так, то можно (конкретный) пример?

Да, похоже, это то, что нужно. Спасибо большое. А не подскажите, тогда заодно, как будет то же самое, но для столбцов матрицы? Я попробовал, было, по аналогии с этим
Код:
Basis([seq(Column(M, i), i = 1 .. op(1, M)[1])])

, но что-то не пошло.

-- 27.07.2023, 16:02 --

GAA в сообщении #1602101 писал(а):
Может базис?

Я базис попробовал, где-то в инете нашел команду. Так Мэйпл мне выдала векторы с единицами, что-то там с нулями, хотя в строках исходной матрицы этого и близко не было. Я и подумал, что в Мэйпл это называется по-другому.

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение27.07.2023, 16:54 
Если набрать
> ?basis
То справочная система в Maple 7 выдаст список страниц. В частности linalg,basis
Начало текста страницы linalg[basis] справочной системы Maple 7 писал(а):
Calling Sequence
basis(V, crspace)
Parameters
V - a vector, set of vectors or list of vectors, a matrix
crspace - (optional), a name, either 'rowspace' or 'colspace'
После ?basis в Maple 15 откроется страница LinearAlgebra[Basis], а к странице linalg[basis] можно выйти через Table Of Content справки:
System \ Libraries and Packages\ Deprecated Packages and Commands \ Deprecated Packages \ linalg (На последней странице ищем ссылку на basis.)
Вложение:
Help.PNG
Код:
> M:= matrix([[1,1,0], [0,0,1], [1,1,1]]):
> linalg[basis](M, 'colspace');
               [[1,0,1], [0, 1, 1]]

В пакете LinearAlgebra в Maple 15 Classic Worksheet:
Код:
> Basis([seq(Column(M, i), i=1..op(1, M)[2])]);
#или
> Basis([seq(Column(M, i), i=1..ColumnDimension(M))]); # этот вариант будет работать и в Maple 7


У вас нет доступа для просмотра вложений в этом сообщении.

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение01.08.2023, 00:24 
Да, спасибо большое.

-- 01.08.2023, 01:31 --

Ребят, а почему я упорно не могу решить уже такую систему:
https://postimg.cc/fJDhMcVj
? Пока последнее уравнение имеет вид $b_k=0$, еще решает, а вот дальше ни в какую.

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение01.08.2023, 22:05 
Текст лучше вставлять при помощи тега code. Иначе приходится перебирать с рисунка, и читатель может ошибиться.

В каком смысле не решается? У Вас шесть уравнений и семь неизвестных. Если ни одно их уравнений не является следствием других, то шесть неизвестных выразятся через одно из неизвестных, параметры и коэффициенты уравнений.
И в стандартном интерфейсе, и в Classic Worksheet Maple
Код:
> solve({b[k]+c[k]+15*d[k]-6*t[k]=0, 15*a[k]+8*b[k]+5*c[k]-15*f[k]+6*u[k]=0, 6*a[k]+3*b[k]-c[k]+15*h[k]-6*v[k]=0, a[k]-8*d[k]-f[k]-h[k]+2*t[k]=0, a[k]-5*d[k]-u[k]-v[k]=0, b[k]-5*f[k]+15*t[k] + 8*u[k]+5*v[k]=0}, {a[k], b[k], c[k], d[k], f[k], h[k], t[k]});

{a[k] = 5*d[k]+u[k]+v[k], b[k] = -6/5*u[k], c[k] = -15*d[k], d[k] = d[k], f[k] = 19/25*u[k]+v[k], h[k] = -3*d[k]-4/25*u[k], t[k] = -1/5*u[k]}

Если в качестве переменных выбрать {a[k], b[k], d[k], f[k], h[k], t[k]}, Maple вернёт
Код:
{a[k] = -1/3*c[k]+u[k]+v[k], b[k] = -6/5*u[k], d[k] = -1/15*c[k], f[k] = 19/25*u[k]+v[k], h[k] = -4/25*u[k]+1/5*c[k], t[k] = -1/5*u[k]}

Желательно указать конкретный пример, когда «не решает».

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение02.08.2023, 03:49 
Я в третьем уравнении допустил ошибку, когда его записывал, глядя на картинку. Должно быть так:
Код:
solve({b[k]+c[k]+15*d[k]-6*t[k]=0, 15*a[k]+8*b[k]+5*c[k]-15*f[k]+6*u[k]=0, 6*a[k]+2*b[k]-c[k]+15*h[k]-6*v[k]=0, a[k]-8*d[k]-f[k]-h[k]+2*t[k]=0, a[k]-5*d[k]-u[k]-v[k]=0, b[k]-5*f[k]+15*t[k] + 8*u[k]+5*v[k]=0}, {a[k], b[k], c[k], d[k], f[k], h[k], t[k]});
Решение не находит, так как его нет: ранг матрицы коэффициентов 5. А ранг расширенной матрицы, в общем случае, 6. Например, пусть $u_k = 1$, $v_k = 0$. Тогда, если не ошибся
Код:
> v1:= [ 0, 1, 1, 15, 0, 0,-6]:
> v2:= [15, 8, 5, 0,-15, 0, 0]:
> v3:= [ 6, 2,-1, 0, 0, 15, 0]:
> v4:= [ 1, 0, 0, -8,-1,-1, 2]:
> v5:= [ 1, 0, 0,-5, 0, 0, 0]:
> v6:= [ 0, 1, 0, 0,-5, 0,15]:
> M:= Matrix([v1, v2, v3, v4, v5, v6]):
> linalg[rank](M);
           5
> vx1:= [ 0, 1, 1, 15, 0, 0,-6, 0]:
> vx2:= [15, 8, 5, 0,-15, 0, 0, -6]:
> vx3:= [ 6, 2,-1, 0, 0, 15, 0, 0]:
> vx4:= [ 1, 0, 0, -8,-1,-1, 2, 0]:
> vx5:= [ 1, 0, 0,-5, 0, 0, 0, -1]:
> vx6:= [ 0, 1, 0, 0,-5, 0,15, -8]:
> Mx:= Matrix([vx1, vx2, vx3, vx4, vx5, vx6]):
> linalg[rank](Mx);
               6

Проверить, конечно, надо. Мог и ошибиться, но общая теория такая.

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение02.08.2023, 15:26 
GAA в сообщении #1603572 писал(а):
Текст лучше вставлять при помощи тега code.

Я знаю. Я просто хотел показать реакцию Мэйпл.
GAA в сообщении #1603572 писал(а):
Желательно указать конкретный пример, когда «не решает».

Тот пример на скрине неполный. На самом деле нужно решить следующую систему:
Код:
solve({a[k]-5*d[k]-u[k]-v[k] = 0, b[k]+c[k]+15*d[k]-6*t[k] = 0, a[k]-8*d[k]-f[k]-h[k]+2*t[k] = 0, 6*a[k]+2*b[k]-c[k]+15*h[k]-6*v[k] = 0, 15*a[k]+8*b[k]+5*c[k]-15*f[k]+6*u[k] = 0, b[k]-5*f[k]+15*t[k]+8*u[k]+5*v[k] = 0, c[k]-5*h[k]-6*t[k]-2*u[k]+v[k] = 0}, {a[k], b[k], c[k], d[k], f[k], h[k], t[k]})

, а до этого была система из 9 уравнений, но 3 уравнения оказались следствиями этих 6. Я просто неправильно указал неизвестные, относительно которых нужно решить эту систему :facepalm: Вот так:
Код:
solve({a[k]-5*d[k]-u[k]-v[k] = 0, b[k]+c[k]+15*d[k]-6*t[k] = 0, a[k]-8*d[k]-f[k]-h[k]+2*t[k] = 0, 6*a[k]+2*b[k]-c[k]+15*h[k]-6*v[k] = 0, 15*a[k]+8*b[k]+5*c[k]-15*f[k]+6*u[k] = 0, b[k]-5*f[k]+15*t[k]+8*u[k]+5*v[k] = 0, c[k]-5*h[k]-6*t[k]-2*u[k]+v[k] = 0}, {a[k], b[k], c[k], d[k], t[k], u[k], v[k]})

уже решает. Спасибо большое.

-- 02.08.2023, 16:34 --

GAA в сообщении #1603572 писал(а):
Если в качестве переменных выбрать {a[k], b[k], d[k], f[k], h[k], t[k]}, Maple вернёт

А у меня переменные прям с нижними индексами получается вводить:
https://postimg.cc/fJDhMcVj
(повторюсь). Или так делать нежелательно?

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение02.08.2023, 16:33 
Sinoid в сообщении #1603667 писал(а):
На самом деле нужно решить следующую систему:
Код:
solve({a[k]-5*d[k]-u[k]-v[k] = 0, b[k]+c[k]+15*d[k]-6*t[k] = 0, a[k]-8*d[k]-f[k]-h[k]+2*t[k] = 0, 6*a[k]+2*b[k]-c[k]+15*h[k]-6*v[k] = 0, 15*a[k]+8*b[k]+5*c[k]-15*f[k]+6*u[k] = 0, b[k]-5*f[k]+15*t[k]+8*u[k]+5*v[k] = 0, c[k]-5*h[k]-6*t[k]-2*u[k]+v[k] = 0}, {a[k], b[k], c[k], d[k], f[k], h[k], t[k]})

, а до этого была система из 9 уравнений, но 3 уравнения оказались следствиями этих 6.

У меня вначале нужная система не решалась, я и давай убавлять уравнения. Я, когда стало не получаться, подумал, что, может быть в Мэйпл, и для систем, начиная с какого-то количества уравнений в нем, нужно писать что-то наподобие
Код:
interface(rtablesize = 14)

- команды, которую употребляют, чтобы в Мэйпл увеличить верхний потолок размера матрицы, при котором возможно полное ее отображение, а не, скажем, такое ее отображение:
Изображение

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение02.08.2023, 20:12 
Sinoid в сообщении #1603667 писал(а):
Или так делать нежелательно?
В ранних версиях допускалась форма индексация в виде указания индекса в квадратных скобках. В более поздних версиях появились дополнительные возможности, в частности, индексы, вставка греческих букв. Однако я и привык к текстовому виду («текст должен быть текстом»), и трудно находимых ошибок меньше. Поэтому с этим вопросом я не разбирался. Может быть, знатоки напишут.

Для общения на форумах и в электронной переписке раньше обычно использовался текстовый вид. Для преобразования в текстовый вид, видимо, можно
  • просто скопировать через буфер обмена Windows в форму форума;
  • скопировать предложения («команды») через буфер обмена из документа стандартного интерфейса в документ Classic Worksheet;
  • сохранить документ стандартного интерфейса в файл подходящего формата;
  • преобразовать внутри документа стандартного интерфейса, вызвав локальное меню при помощи правой кнопки мыши и выбрав Conversion \ To String (см. рис. ниже).
Вложение:
ToStringLocalMenu_Maple15.PNG
Вложение:
To stringLocalMenu_Maple15_res.PNG


У вас нет доступа для просмотра вложений в этом сообщении.

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение02.08.2023, 22:26 
GAA
ясно. Спасибо.

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение19.12.2024, 20:46 
Столкнулся с такой ситуацией. Хорошо бы знать, как это делается... Вот есть открытое окно Maple с интерфейсом
GAA в сообщении #1585060 писал(а):
Стандартный интерфейс запускается при нажатии на красную пиктограмму "Maple 15" (приложение maplew.exe).

, в этом окне в одном из вводов имеется матрица с некоторыми количествами строк и столбцов. Эта матрица была введена в это окно с помощью палитры матриц:
Изображение
Вот здесь указываются сочетания клавиш для добавления в эту матрицу строки/столбца. Эти сочетания у меня работают, тут все нормально. А никто не знает, как, наоборот, из такой матрицы удалить строку/столбец? По идее, средства для этого должны быть. В Гугле что-то на это счет тишина.

 
 
 
 Re: Несколько вопросов по программе Maple
Сообщение20.12.2024, 00:23 
Команд среды я не знаю. Но можно воспользоваться конструктором матрицы.
Допустим у нас есть матрица с 4 строками и 3 столбцами и мы хотим получить матрицу с первыми двумя строками и тремя столбцами исходной матрицы
Код:
> M:= Matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]):
> M1:= Matrix(2, 3, (k,j)-> M[k, j]):
Или допустим хотим выкинут вторую строку
Код:
> M:= Matrix(3, 3, (i, j)->`if`(i<2, M[i, j], M[i+1, j]));
Вложение:
Matrix.PNG


У вас нет доступа для просмотра вложений в этом сообщении.

 
 
 [ Сообщений: 32 ]  На страницу Пред.  1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group