Объединение уравнений

Форум пользователей пакета Maple

Модератор: Admin

kibcat
Сообщения: 4
Зарегистрирован: Вс ноя 13, 2016 10:41 pm
Откуда: г. Пенза

Объединение уравнений

Сообщение kibcat » Ср апр 12, 2017 9:48 pm

Здравствуйте, столкнулся с такой проблемой:
массив S хранит n уравнений вида f(t)=0, n задаётся в программе
для функции solve нужно перечислить все уравнения и переменные, но так как n может быть достаточно большим то этот способ неудобен
знаю что можно как то объединить все уравнения в множество, а вот как не помню и в интернете ничего не нашёл
может кто подсказать как это сделать?

Kitonum
Сообщения: 2035
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Объединение уравнений

Сообщение Kitonum » Пт апр 14, 2017 7:35 pm

Синтаксис команды solve требует, чтобы система уравнений была задана как множество или список. Если ваша система задана как массив, то просто конвертируйте этот массив в множество или список как в следующем простом примере:
M:=Array(1..3,[x+y=1,y+z=2,z+x=3]);
S:=convert(M, set);
L:=convert(M, list);
solve(S);
solve(L);


Если ваша система подчиняется некоторой закономерности, то её обычно задают, используя команду seq . Например в следующей системе из 10 уравнений в каждом уравнении пропущена одна переменная (в разных уравнениях - разная), а правые части взяты случайными:
r:=rand(0..9):
n:=10:
S:=[seq(`+`(op({seq(x[k], k=1..n)} minus {x[i]}))=r(), i=1..n)];
solve(S);