Не помню, откуда взялся этот стиш и есть ли у него автор. В Сети находится только в несколько перевранном виде.
А вот ввод,
Который умеет читать перфорацию
И, стало быть, может вводить информацию
В БЭСМ, которой владеет ВЦ.
А это — колода,
Которую ставят на вход того ввода,
Который умеет читать перфорацию
И, стало быть, может вводить информацию
В БЭСМ, которой владеет ВЦ.
А вот лаборантка, младая и пышная,
Которая карту засунула лишнюю
В большую и важную очень колоду,
Которую ставят на вход того ввода,
Который умеет читать перфорацию
И, стало быть, может вводить информацию
В БЭСМ, которой владеет ВЦ.
А это — АВОСТ,
К которому путь неизбежен и прост,
Когда лаборантка, младая и пышная,
Карту засунет заведомо лишнюю
В большую и важную очень колоду,
Которую ставят на вход того ввода,
Который умеет читать перфорацию
И, стало быть, может вводить информацию
В БЭСМ, которой владеет ВЦ.
* * *
Вот БЭСМ, которой владеет ВЦ.А вот ввод,
Который умеет читать перфорацию
И, стало быть, может вводить информацию
В БЭСМ, которой владеет ВЦ.
А это — колода,
Которую ставят на вход того ввода,
Который умеет читать перфорацию
И, стало быть, может вводить информацию
В БЭСМ, которой владеет ВЦ.
А вот лаборантка, младая и пышная,
Которая карту засунула лишнюю
В большую и важную очень колоду,
Которую ставят на вход того ввода,
Который умеет читать перфорацию
И, стало быть, может вводить информацию
В БЭСМ, которой владеет ВЦ.
А это — АВОСТ,
К которому путь неизбежен и прост,
Когда лаборантка, младая и пышная,
Карту засунет заведомо лишнюю
В большую и важную очень колоду,
Которую ставят на вход того ввода,
Который умеет читать перфорацию
И, стало быть, может вводить информацию
В БЭСМ, которой владеет ВЦ.
(no subject)
2009-05-07 10:49 (UTC)(no subject)
2009-05-07 11:32 (UTC)... Удар ниже чёрного пояса ...
(no subject)
2010-11-08 10:22 (UTC)Спасибо, что предложили помощь по Вольфрам-математике.
Отдельное сообщество организовывать пока, наверное, нет смысла, поэтому почему бы блаародным донам не покидать кости прято тут, в этой теме?
вы не против?
тогда
вопрос №1.
Есть замкнутая система алгебраических уравнений.
Задача - исключить все, кроме одной, переменные и представить итоговое ур-е в наиболее простом виде.
In[2]:= Collect[Eliminate[{
rs*X == as*(Sm - S)*D1,
ro*X == Fin,
rp*X == ap*P*D1,
rs == D1 + ro + rp,
Nox*ro + Npx*rp == D1 + mx,
rs == as*ds*S},
{S, P, rp, rs, ro}], X, Simplify]
Out[2]= D1 Fin (Nox - Npx) + (ds Fin (Nox - Npx) - D1^2 (1 + Npx) +
as D1 ds Npx Sm) X - D1 ds (1 + Npx) X^2 == D1 mx X + ds mx X^2
на выходе получили правую часть не равную нулю, поэтому полином не максимально прост по форме. Как заставить программу перекидывать все с права налево автоматически?
(no subject)
2010-11-08 15:37 (UTC)Collect не преобразует выражение. Результат Eliminate получается с ненулевой правой частью, а Collect собирает степени X слева и справа по отдельности. Передайте результат Eliminate еще одному вызову Simplify, т. е.
In[2]:= Collect[Simplify @ Eliminate[{
ну и далее по тексту.
In[3]:= Collect[
Simplify@Eliminate[{rs*X == as*(Sm - S)*D1, ro*X == Fin,
rp*X == ap*P*D1, rs == D1 + ro + rp, Nox*ro + Npx*rp == D1 + mx,
rs == as*ds*S}, {S, P, rp, rs, ro}], X, Simplify]
Out[3]= D1 Fin (-Nox + Npx) + (D1^2 (1 + Npx) + ds Fin (-Nox + Npx) +
D1 (mx - as ds Npx Sm)) X + ds (D1 + mx + D1 Npx) X^2 == 0
(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by?PolynomialQ
Posted byRe: ?PolynomialQ
Posted by(no subject)
Posted byВопрос 6. Как вставлять комментарии?
2010-11-10 13:22 (UTC)Если вы скармливате текстовые файлы с расширением .m прямо MathKernel, то комментарии (* вот такие *). Если вы используете frontend, то лучше всего писать текст в текстовых ячейках, ведь frontend — это целый текстовый процессор. Поставьте курсор в ячейку или между, и выберите из меню Format/Style/Text. Там же увидите shortcut для этого стиля (и других полезных), чтобы в это меню больше зазря не ходить. Можно, конечно, и (* *) писать в ячейках стиля Input, но они форматируются убого.
*******
Как подключить этот frontend ?
Замучился переносить из математики в Ворд и обратно, ибо Ворд не считает, а математика распечатывает мелким шрифтом.
(no subject)
2010-11-10 16:08 (UTC)Вы в Windows работаете, да? Надо увеличить шрифт при распечатке — правильно? Это не очень просто, попробуйте, может, получится.
Format/Edit stylesheet... Откроется окно Style Definitions for ... (это тоже notebook). В нем будет всего одна ячейка: Ineriting style definitions from ...
Поставьте курсор ниже и нажмите, скажем, пробел. Добавится новая ячейка, как обычно при вводе. Дальше мы схитрим: нажмиет Ctrl+Shift+E. Ячейка превратится в описание структуры: Cell[....]. Выделите весь этот текст и замените на:
Cell[StyleData[All, "Printout", StyleDefinition -> None], Magnification->1.2]
Опять в этой ячейке нажмите Ctrl+Shift+E. Ячейка превратится в описание стиля: Local definitions for all styles in style environment Printout.
Перейдите в Ваш notebook и попробуйте напечатать. Может, все и увеличится. Кажется, должно бы.
Может, все и увеличится
Posted by7. Как инициировать переменные?
2010-11-10 13:27 (UTC)Я поступаю тупо - сохраняю файлы, выхожу из программы, запускаю программу и по новой открываю файлы.
Как упростить инициализацию переменных?
каков ее механизм?
как работают и в чем разница операторов "=" и "==" ?
(no subject)
2010-11-10 16:28 (UTC)Думаю, что проблема получается из-за того, что какие-то из переменных получают значения, а Вы хотите, чтобы они оставались символами. Переменную можно лишить значения оператором =.
In[100]:=
a = 5;
a
Out[101]= 5
In[102]:=
a =.;
a
Out[103]= a
Оператор = присваивает значение символу (это функция Set[]). == — оператор сравнения, функция Equals[]
In[7]:= 2*2 == 4
Out[7]= True
In[8]:= 2*2 = 4
During evaluation of In[8]:= Set::write: Tag Times in 2 2 is Protected. >>
Out[8]= 4
Я написал в примере выше ==0, просто чтобы напечаталось как уравнение, потому что перед этим я сравнение с нулем откусил с помощью Part. A вообще любое выражение в математике — список вложенных списков с разными головами, которые можно посмотреть функцией FullForm[]
In[1]:= x + 1
Out[1]= 1 + x
In[2]:= x + 1 // FullForm
Out[2]//FullForm= Plus[1, x]
In[3]:= PolynomialQ[%, x]
Out[3]= True
In[4]:= x + 1 == 0
Out[4]= 1 + x == 0
In[5]:= FullForm[%]
Out[5]//FullForm= Equal[Plus[1, x], 0]
In[6]:= PolynomialQ[%, x]
Out[6]= False
x+1 — полином от x, а выражение x+1=0 полиномом от x не является. В этом есть определенная
сермяжная правдазерно истины. Так что если Вам попадется уравниние с полиномом, то из него можно выбрать отдельно левую часть (или правую, где там плоином окажется) с помощью функции Part[]In[9]:= mypol = x^2 + 5 x - 1 == 0
Out[9]= -1 + 5 x + x^2 == 0
In[10]:= mypol[[1]]
Out[10]= -1 + 5 x + x^2
In[11]:= mypol[[2]]
Out[11]= 0
In[12]:= mypol[[0]]
Out[12]= Equal
нулевая часть любого списка — его головной символ, head, который как бы задает тип этого списка.
mypol=. (* не забывайте сбасывать временные переменные, когда не нужны *)
(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by8. Как задать неравенства?
2010-11-10 21:53 (UTC)как дополнить систему уравнений такими условиями?
Re: 8. Как задать неравенства?
2010-11-11 00:08 (UTC)In[18]:= (tempS1 = Solve[solS1 == 0, S]) // LeafCount
Out[19]= 1377468
Но Solve не принимает неравенств, только равенства и их отрицания:
Solve[solS1 == 0 && S > 0, S];
Solve::eqf: S>0 is not a well-formed equation. >>
А Reduce[] захлебнется от такого. Впрочем, попытайтесь оставить на ночь считаться — чем черт не шутит. Конечно, за 30 секунд не досчиталось (я Alt+. нажал):
In[21]:= tempS2 = Reduce[solS1 == 0 && 0 <= C1/Cm <= 1 && S > 0, Reals];
Out[21]= $Aborted
Хотя кое-чего попроще она, конечно, решает:
In[23]:= Reduce[x^2 == 4 && x > 0]
Out[23]= x == 2
Посмотрите на эти документы в хелпе:
tutorial/ComplexPolynomialSystems
tutorial/ManipulatingEquationsAndInequalitiesOverview
9.Как задать функцию-клюшку?
2010-11-11 08:33 (UTC)Y= a+b*X при X
Y= a+b*X при X<Xc и Y= Yc при X>Xc
она же Y= min(a+b*X , Yc)
Как это грамотно сделать и какие функции WM критичны (начинают виснуть)к таким "клюшкам", а какие - жуют?
Re: 9.Как задать функцию-клюшку?
2010-11-11 10:08 (UTC)Ну, в общем, так и задаете, с помощью Min[] или Piecewise[]. В принципе, все функции нормально относятся, если только не пытаться сделать то, чего нельзя (производную посчитать, например, в точке излома).
In[34]:= Y[x_] := Min[2 x - 5, 3];
Plot[Y[x], {x, 1, 5}]
Out[35]= (картинко)
In[36]:= Reduce[Y[x] == 0, x, Reals]
Out[36]= x == 5/2
In[38]:= Reduce[Y[x] == 3, x, Reals]
Out[38]= x >= 4
In[37]:= D[Y[x], x]
Out[37]= Piecewise[{{2, x < 4}, {0, x > 4}},
Indeterminate]
10. -11. О метапеременных и мощности процессора для BM
2010-11-11 08:51 (UTC)зато solS (см. выше) на моем уже зависает - не дожидался результата. Как много зависит от мощности процессора? Реально ли за счет мощности компа что-то сделать или ВМ-алгоритмы все предопределяют?
Как отличить ВМ-сложную задачу от ВМ-простой на вид?
11. Где найти список и описание всех доступных для какой-либо ф-ии опций и метапеременных?
например,
?Reduce
выдает
...
Reduce[expr,vars,dom] does the reduction over the domain dom...
причем, метапеременные expr,vars,dom из справки по ф-ии недоступны.
Re: 10. -11. О метапеременных и мощности процессора для BM
2010-11-11 10:13 (UTC)Уже зависает: у меня компутер слабенький, P4 3GHz. Наверное, в математике 7 немного лучше алгоритмы.
In[46]:= (tempS1 = Solve[solS1 == 0, S]) // LeafCount // Timing
Out[46]= {4.563, 1377468}
4,5 секунды.
11. Кнопка F1, если ее нажать на функции, должна открыть Help. Он очень подробный и с примерами. Если она этого не делает, что-то не установлено, наверное, или сломалось.
Re: 10. О мощности процессора для BM
Posted by11. О метапеременных
Posted byRe: 11. О метапеременных
Posted by2. О поиске и замене "скрытых комплексов"
2010-11-11 09:02 (UTC)бывает, что встречаются комплексы, которые хотелось бы заменить для дальнейшей работы на некие параметры (или переменные в зависимости от их природы)
как, например, сделать подстановку параметра FinOP == Fin (-Nox + Npx) и далее преобразовать уравнение (в данном случае полином 2 степени) для поиска всех возможных скрытых и явных (или хотя бы явных) Fin (-Nox + Npx) с целью замены их на FinOP ?
Ответ 2:
З. Ы. Это только явные, конечно. Для «скрытых» можно попытаться решить систему из исходного уравнения и замены FinOP == Fin (-Nox + Npx), избавляясь от переменных в правой части второго. Если это удается, то замена получается.
=================
Что-то ничего у меня устойчиво не вышло. :(
Странно, что одиночные переменные легко достаются функцией Collect (может еще какими?), а про комплексы... ВM в той же Collect, даже не знает, что, например, Fin (-Nox + Npx)= - Fin (Nox - Npx).
Я так понял Ваше предложение о замене "скрытых комплексов", что надо найти их все в исходной системе вручную, заменить на переменные и тогда... Но это же не выход, если бы это было просто, то и ВМ была бы не нужна.
Может можно как-то иначе? Для качественного решения систем (символьных вычслений) это крайне полезное дело.
Re: 2. О поиске и замене "скрытых комплексов"
2010-11-11 10:14 (UTC)Re: 2. О поиске и замене "скрытых комплексов"
Posted byRe: 2. О поиске и замене "скрытых комплексов"
Posted byRe: 2. О поиске и замене "скрытых комплексов"
Posted by12. средства регрессии в ВМ
2010-11-11 18:13 (UTC)Есть ли инструменты для (не)линейной регрессии?
Имееццо таблица данных и вид апроксимирующих зависимостей.
Как средствами ВМ подобрать наиболее приемлемые коэффициенты k1-k4?
Тут 4 переменных в 2-х уравнениях. И таблица для этих 4-х переменных.
Вроде хватает, чтобы степени свободы перекрыть?
D; ao*ro; as*rs; ap*rp
0,025; 0,038; 0,086; 0
0,05; 0,062; 0,172; 0
0,1; 0,119; 0,317; 0
0,15; 0,187; 0,49; 0
0,2; 0,254; 0,663; 0
0,25; 0,335; 0,807; 0
0,28; 0,355; 0,98; 0,024
0,3; 0,292; 1,297; 0,372
0,35; 0,244; 2,479; 1,44
0,4; 0,177; 3,199; 2,092
============================
as*rs=k1*D + ao*ro + ap*rp
k2*ro + k3*rp = D + k4
===========================
ao=1,5
as=1,6
ap=3,1
Я еще не надоел Вам? не сильно нагружаю?
Re: 12. средства регрессии в ВМ
2010-11-12 04:39 (UTC)(у Вас хелп отыскался?)Такого вида системы лучше решать, кажется, с помощью LeastSquares[]. Еще есть несколько — см
guide/CurveFittingAndApproximateFunctions и Tutorials под ней
Хелп-то нашелся?P7 S. Вижу, нашелся.
Re: 12. средства регрессии в ВМ
Posted byИзюминг
2010-11-21 11:01 (UTC)помогите, пожалуйста, понять логику функции Assuming. Если первый раз умножая и деля на какие-то комплексы параметров с горем пополам удается ее заставить сделать нужные замены, то повторно - ничего не получается.
Вот программа. Я добился почти всего, чего хотел, но в конце не могу сделать замену mxx== mx/(1+Nox).
Спасибо!
========================
preferEqual0[e_]:=LeafCount[e]-100 Count[e,_==0,{0,Infinity}];
solSraw1=Eliminate[{
rrs*X== Sm/qsm(1-SS)*D1,
rro*X== Cm/qom*(1-CC)*Kla,
Nox*as*qsm*rrs== (1+Nox)*D1+mx,
Nox*ao*qom*rro== D1+mx,
rrs== 1/(Ksr/SS+1),
rro== 1/(Kor/CC+1) },
{X, CC,SS,P, rrs,rro, rp }] ;
solSDp=Simplify[solSraw1,ComplexityFunction->preferEqual0]
solSDp9= Assuming[ {
FO== ao Nox qom ,
FS== as Nox qsm /(1+Nox),
FK== ao Cm Kla * (1+Nox)/(as Sm) },
Collect[Expand[Simplify[solSDp[[1,1]] *(1+Nox)/(as Sm) \
]],D1,Simplify]]
Collect[
CoefficientList[solSDp9 /(1+Nox)^2, D1] , mx, Simplify]
Assuming[
mxx== mx/(1+Nox),
Collect[
CoefficientList[solSDp9 , D1]*(1+Nox) , mxx, Simplify]]/(1+Nox)^3
2. Меня зовут Леонид. А как зовут моего благодетеля, если не секрет?
Re: Изюминг
2010-11-21 14:26 (UTC)Я не совсем понимаю, чего Вы пытаетесь получить в последнем выражении. То, что написано, работает так. Внутренняя функция CoefficientList[] дает такой результат:
In[30]:= CoefficientList[solSDp9, D1]
Out[30]= {FK FO mx (mx - FS (1 + Nox)),
(-1 - Nox) (FK FO (FS - 2 mx + FS Nox) + mx^2 (-(1 + Ksr) mx + FS (1 + Nox))), (1 + Nox) (FK FO (1 + Nox) + mx (-2 FS (1 + Nox) + (1 + Ksr) mx (3 + Nox))),
(1 + Nox) ((1 + Ksr) mx (3 + 2 Nox) - as Nox qsm),
(1 + Ksr) (1 + Nox)^2}
Дальше Вы домножаете каждый член на (1 + Nox) и просите Collect представить каждое из этих четырех выражений в виде полинома от mxx. Но в них не входит mxx, поэтому ничего не выйдет. Вы объясните, что тут надо сделать.
Re: Изюминг
Posted byRe: Изюминг
Posted byRe: Изюминг
Posted byRe: Изюминг
Posted byRe: Изюминг
Posted byRe: Изюминг
Posted byRe: Изюминг
Posted byRe: Изюминг
Posted byRe: Изюминг
Posted byRe: Изюминг
Posted byДиф. уравнения
2010-12-30 16:30 (UTC)DSolve[{
x'[t] == Y*mmax*s[t]/(Ks + s[t])*x[t],
s'[t] == -mmax*s[t]/(Ks + s[t])*s[t],
x[0] == x0,
s[0] == s0
}, {x, s}, t]
Plot[
DSolve[{
x'[t] == Y*mmax*s[t]/(Ks + s[t])*x[t],
s'[t] == -mmax*s[t]/(Ks + s[t])*s[t],
x[0] == 1.,
s[0] == 10.,
mmax -> 0.5,
Y -> 0.5,
Ks -> 0.01
}, {x, s}, t]
, {t, 0, 1}]
спасибо!
Re: Диф. уравнения
2010-12-31 03:58 (UTC)dsol = DSolve[{x'[t] == Y*mmax*s[t]/(Ks + s[t])*x[t], s'[t] == -mmax*s[t]/(Ks + s[t])*s[t], x[0] == x0, s[0] == s0}, {x[t], s[t]}, t]Мне сказали 4 предупреждения при решении. Не знаю, насколько это плохо.
Дальше, посмотрите на структуру результата:
{ { s[t] -> ... , x[t] -> ... } }Те выражения от t, что Вы хотите нарисовать, отмечены многоточиями. именно их надо передать (как список из 2 элементов) функции Plot. Возьмем внутренний список ([[1...]]), затем все его элеменtы [[...Аll...]], затем второй элемент каждого [[...2]]:
Получился тот самый список функций, которые годятся для рисования. Теперь его можно передавать Plot. Фокус в том, что его еще надо пропустить через функцию Evaluate[], потому что Plot[] задерживает вычисление аргументов. Если этого не сделать, он все равно нарисует, но одним цветом оба графика, а так первый (это s[t]) будет синим, а второй, x[t], фиолетовым. В целом, получится вот что:
Block[{Ks = 1, s0 = 10, x0 = 1, Y = 3, mmax = 1}, Plot[Evaluate[dsol[[1, All, 2]]], {t, 0, 1}] ]Значения я, конечно, взял с потолка — чтобы красивее нарисовалось.
Re: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byRe: Диф. уравнения
Posted byЗАРАБОТАЛО!!! Спасибо!
Posted byВроде собрал все как вы учили, а не работает. :(
2011-01-14 17:42 (UTC)dsol7=Block[{Ks=0.1, Sm=10, Ko=0.01, Cm=0.0001, Kla=1000,
x0=1, s0=0.1, c0=0.0001, p0=0, Pm=0,
as=0.8, ao=0.7, ap=0.6,
qsm=1, qom=0.1,
Nox=0.5, Npx=0.05, mx=0.005},
mm[t_]= rs[t]-ro[t]-rp[t];
rp[t_]= (mm[t]+mx-Nox*ro[t])/Npx;
rs[t_]= as*qsm/(Ks/S[t]+1);
ro[t_]= ao*qom/(Ko/CC[t]+1);
NDSolve[{
X'[t]== (mm[t]-DD)*X[t],
S'[t]== - rs[t]*X[t]/as + (Sm-S[t])*DD,
CC'[t]== - ro[t]*X[t]/ao + (Cm-CC[t])*Kla,
P'[t]== + rp[t]*X[t]/ap + (Pm-P[t])*DD,
X[0]==x0, S[0]==s0, CC[0]==c0, P[0]==p0 },
{X[t], S[t], CC[t], P[t], mm[t], rs[t], ro[t], rp[t]},{t,0,10}]]
Re: Вроде собрал все как вы учили, а не работает. :(
2011-01-14 18:31 (UTC)rp[t_]= (mm[t]+mx-Nox*ro[t])/Npx;
Взаиморекурсия получается, однако…
Re: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted by(no subject)
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byкак вывести графики парами?
Posted byRe: как вывести графики парами?
Posted byRe: как вывести графики парами?
Posted byRe: как вывести графики парами?
Posted byRe: как вывести графики парами?
Posted byRe: как устроить цикл для произвольно заданных DD?
Posted byНачальные значения для функций
Posted byRe: Начальные значения для функций
Posted byRe: Начальные значения для функций
Posted byRe: Начальные значения для функций
Posted byRe: Начальные значения для функций
Posted byRe: Начальные значения для функций
Posted byОпределение других констант в Block[]
Posted byТри колонки
Posted byKак устроить цикл для произвольно заданных DD?
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byRe: Вроде собрал все как вы учили, а не работает. :(
Posted byAssumptions / Reduce
2011-09-01 12:44 (UTC)Вот такой вот текст для поиска решений в символьном виде.
Вопросы: почему не действует Assumptions и Reduce не видит ограничений на положительность параметров? Как это устранить?
X:= 0
(*
X:= mx
X:= 1/ Infinity
X:=0 *)
D1 := Dwo
$Assumptions=Smq>0&&CmK>0&&RSM>0&&ROM>0&&Nox>0&&Npx>0&&mx>0&&Ksr>0&&Kor>0 (*&&kkc>0*)
Reduce[{
(Smq*D1) (1-SS) == 0, (* SS== S/Sm *)
CmK (1-CC) == 0, (* CC== C/Cm *)
PP*D1 == 0, (* PP== -1*ap*(Pm-P) *)
RSMk*rrs== D1 + ROMk*rro + rp,
Nox*ROMk*rro + Npx*rp== D1 + mx, (* FO*rro + FS*rrs == FD, *)
rrs== (1+Ksr)/(Ksr/SS+1), (* rrs== 1/(Ksr/SS+1), RSMk == RSM/(1+Ksr), *)
rro== (1+Kor)/(Kor/CC+1) (* rro== 1/(Kor/CC+1), ROMk == ROM/(1+Kor), *)
}, { SS, CC, PP, rrs, rro, rp, Dwo}] (* X=0 *)
%[[1,All]]
Re: Assumptions / Reduce
2011-09-01 21:54 (UTC)$Assumptions = expr
Refine[...]
лучше писать
Assuming[ Refine[...], expr]
или даже
Refine[..., Assumptions->expr]
$Assumptions глобальная переменная, и, если значение нечаянно сохранится, то результаты вычислений в разных местах будут непредсказуемо другими.
Во-вторых, $Assumptions не влияет на Reduce. У нескольких функций (напр., Refine[]) есть опция Assumptions, и значение этой опции по умолчанию таково:
Assumptions :> $Assumptions
То есть значение переменной $Assumptions вычисляется и используется как значение опции при вычислении самой функции. Таким образом, $Assumptions влияет только на функции, у которых есть эта опция, а у Reduce[] ее нет. Нет его потому, что по форме и семантике выражение в Assumptions не отличается от первого аргумента Reduce[], и их легко объединить
Перепишите Ваше выражение
$Assumptions = assum
Reduce[{ex1,...,exN}, vars]
в виде
Reduce[{ex1,...,exN,assum}, vars]
и все будет пучком. Если пользуетесь блоком Assuming[], можно прямо писать
Assuming[ Reduce[{ex1,...,exN,$Assumptions}, vars], assum]
Re: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byRe: Assumptions / Reduce
Posted byClearAll[ "Global`*" ]
Posted byRe: ClearAll[ "Global`*" ]
Posted byRe: ClearAll[ "Global`*" ]
Posted byDo
2011-09-02 16:51 (UTC)1. Я Вас еще не замучил? :)
2. Полностью ли процесс выполнения программы после стартовой строки ClearAll["Global`*"]
тождественен тому же процессу после команды из меню QUIT KERNEL?
3. Как компактизировать замену переменных? Почему в тексте ниже оно ругается на использование Do ?
=========================
ClearAll["Global`*"] (*стартовая зачистка всех переменных*)
SYSTEMST = {(Smq*D1) (1 - SS) == rrs*X,(*SS==S/Sm*)
CmK (1 - CC) == rro*X,(*CC==C/
Cm*)-1*ap*(Pm - P)*D1 == rp*X,(*PP==-1*ap*(Pm-P)*)
RSMk*rrs == D1 + ROMk*rro + rp,
Nox*ROMk*rro + Npx*rp == Dm + mx,(*FO*rro+FS*rrs==FD,*)
rrs == (1 + Ksr)*SS/(Ksr + SS),(*rrs==1/(Ksr/SS+1),RSMk==RSM/(1+
Ksr),*)rro == frro};
VARST00 = {X, SS, CC, P, D1, Dm, rrs, rro, rp}
VARSTWO = {0, SSwo, CCwo, Pwo, Dwo, Dmwo, rrswo, rrowo, rpwo}
SYSTEMST1 =
SYSTEMST /. {VARST00[[1]] -> VARSTWO[[1]],
VARST00[[2]] -> VARSTWO[[2]], VARST00[[3]] -> VARSTWO[[3]],
VARST00[[4]] -> VARSTWO[[4]], VARST00[[5]] -> VARSTWO[[5]],
VARST00[[6]] -> VARSTWO[[6]], VARST00[[7]] -> VARSTWO[[7]],
VARST00[[8]] -> VARSTWO[[8]], VARST00[[9]] -> VARSTWO[[9]]}
Row[{"получаем такую систему SYSTEMST1= ", SYSTEMST1}]
SYSTEMST2 = SYSTEMST /. {Do[VARST00[[n]] -> VARSTWO[[n]], {n, 9}]}
Row[{"получаем такую систему SYSTEMST1= ", SYSTEMST2}]
Re: Do
2011-09-02 20:04 (UTC)2. Нет. Во-первых, на другие контексты это не влияет — только на Global`. Значит, если Вы нечаянно поменяете глобальные значения (напр., $Assumptions), это изменение сохранится. Далее, символы остаются определенными, хотя и очищаются. В-третьих, атрибуты Locked и Protected не дадут ClearAll очистить символ (об этом печатается warning, если вы не отключаете его ф-цией Off[]).
Эти вещи, скорее всего, не важны в Вашем случае — кроме, разумеется, первого. С глобальными переменными надо быть осторожнее.
3. SYSTEMST1 = SYSTEMST /. Thread[VARST00 -> VARSTWO]
Вычислите отдельно Thread[VARST00 -> VARSTWO], и сразу все поймете.
Do[] поедает результат вычисления (а Table[] сохраняет структуру итератора; в этом смысле, различия между ними подобны оным в паре Scan[] и Map[]). Честно говоря, за 10 лет достаточно плотного знакомства с «Матемаикой» Do[] не пользовался ни разу. Но YMMV, конечно — ничего дурного в ней нет.
модификация списков
Posted byRe: модификация списков
Posted byRe: модификация списков
Posted byRe: модификация списков
Posted byRe: модификация списков
Posted byRe: модификация списков
Posted byRe: модификация переменных
Posted byRe: модификация переменных
Posted byRe: модификация переменных
Posted byRe: модификация переменных
Posted byRe: модификация переменных
Posted byRe: модификация переменных
Posted byRe: модификация переменных
Posted byглобальный вопрос
Posted byRe: глобальный вопрос
Posted byRe: глобальный вопрос
Posted byRe: Do
Posted byКак добраццо до значений?
2011-09-03 09:12 (UTC){{Dcr -> -0.00215559}, {Dcr -> 0.173893}, {Dcr -> 0.379266}, {Dcr ->
0.919777}}
Dcr4[[1]] дает не значение, а
{Dcr -> -0.00215559}
Как получить для дальнейшей работы сами значения&
допустим надо вычислить
D2minusD3= 0.173893 - 0.379266
то же самое при символьном результате:
{{Dcr -> -a}, {Dcr -> b+c}, {Dcr -> к (a-b)}, {Dcr -> 0}}
Re: Как добраццо до значений?
2011-09-03 12:00 (UTC)In[9]:= Dcr /. Dcr4[[1]] (* См. ReplaceAll[], x /. y сокр. запись ReplaceAll[x, y] *)
Out[9]= -0.00215559
In[10]:= Dcr /. Dcr4
Out[10]= {-0.00215559, 0.173893, 0.379266, 0.919777}
In[13]:= Dcr4[[1, 1]]
Out[13]= Dcr -> -0.00215559
Dcr4[[1, 1, 2]] (* x->y то же самое что Rule[x,y] *)
Out[14]= -0.00215559
In[15]:= Dcr /. Dcr4[[2 ;; 3]] (* Диапазон; см. Part[] *)
Out[15]= {0.173893, 0.379266}
In[16]:= Subtract @@ (Dcr /. Dcr4[[2 ;; 3]]) (* См. Apply[]; x @@ y сокр. запись Apply[x, y] *)
Out[16]= -0.205373
Все это работает и при символьном результате, само собой.
Grid и преобразование списков
2011-09-06 15:06 (UTC)увеличить шрифт в таблице - невозможно читать. Как бы поэстетичней сделать? *)
SYSD10 = {rs[t] == (as qsm S[t])/(Ks/Sm + S[t]),
ro[t] == (ao qom CC[t])/(Ko/Cm + CC[t]),
Derivative[1][X][t] == (-DD + mm[t]) X[t],
Derivative[1][S][t] == DD (1 - S[t]) - (rs[t] X[t])/(as Sm),
Derivative[1][CC][t] == Kla (1 - CC[t]) - (ro[t] X[t])/(ao Cm),
Derivative[1][P][t] == DD (Pm - P[t]) + (rp[t] X[t])/ap}
SYSD11 = {(as qsm (Ks rrs + (-1 + rrs) Sm SS))/(Ks + Sm SS) == 0, (
ao qom (CC Cm (-1 + rro) + Ko rro))/(CC Cm + Ko) == 0,
dXdt + DD X - Dm X == 0, dSdt + DD (-1 + SS) + (qsm rrs X)/Sm == 0,
dCCdt + (-1 + CC) Kla + (qom rro X)/Cm == 0,
dPdt + DD PP - (rp X)/ap == 0}
T1name1 = {"Исходное уравнение", "Преобразованное уравнение"}
Tout1 = Table[ {SYSD10[[n1]], SYSD11[[n1]] } , {n1, 6 } ] ;
(*
Tout3=Append[List[ T1name1], Table[ {SYSD10[[n1]],SYSD11[[n1]] } , \
{n1,6 } ] ];
Tout5=Append[List[ T1name1],Tout1];
*)
Grid[Tout1
, Frame -> All, ItemSize -> 25, Spacings -> {Automatic, 2},
Alignment -> Left]
Re: Grid и преобразование списков
2011-09-07 20:00 (UTC)Tout1 = Table[ {SYSD10[[n1]], SYSD11[[n1]]}, {n1, 6 } ];
пишите
Tout1 = Transpose[ {SYSD10, SYSD11} ];
Увеличить шрифт. Самое простое — добавьте в список опций для Grid[] такую: BaseStyle -> Larger. Может быть списком (напр., BaseStyle -> {Larger, Orange, Italic}). См. Style[].
Заголовки. Идея в том, чтобы добавить элемент (список из двух элементов) к списку Tout1, где каждый элемент — заголовок, текст с форматированием. Например, так:
Grid[Prepend[Tout1, Style[#, {Bold, Blue}] & /@ T1name1],
Frame -> All, ItemSize -> 20, Spacings -> {Automatic, 2},
Alignment -> Left, BaseStyle -> {Larger}]
Re: Grid и преобразование списков
Posted byRe: Grid и преобразование списков
Posted byRe: Grid и преобразование списков
Posted byПроверка тождественности логических выражений
2012-02-15 10:12 (UTC)мои попытки неудачные.
Спасибо!
===================
"тянет!!!"
root1 = Reduce[rs == Dm + ro + rp && Nox*ro + Npx*rp == Dm + mx
&& rp >= 0 && ro >= 0 && rs >= 0
&& Npx > -1 && Nox >= 0 && mx >= 0 , {rs, ro, Dm, rp},
Reals] // FullSimplify
"проверка тождества - не работает"
root2 = Npx > -1 && Nox >= 0 &&
Dm + ro + rp ==
rs && ((mx == 0 && rs == 0 && ro == 0 && Dm == 0) || (mx > 0 &&
rs >= 0 && 0 <= ro <= (mx + rs)/(1 + Nox) &&
Dm == (-mx + Nox ro + Npx (-ro + rs))/(1 + Npx)))
root4 = Reduce[root1 && root2
, {Nox, Npx, mx, rs, ro, Dm, rp}, Reals] // FullSimplify
Equivalent[root1, root2] // TautologyQ
(* EOF *)
Re: Проверка тождественности логических выражений
2012-02-16 08:57 (UTC)In[39]:= Assuming[mx == 0 && rs > 0, {root1, root4} /. {Dm + ro + rp == rs -> True} // FullSimplify] Out[39]= {Nox >= 0 && ro >= 0 && 1 + Npx > 0 && ro + Nox ro <= rs && Dm + Dm Npx + Npx ro == Nox ro + Npx rs, False}Первое истинно при некоторых значениях параметров, второе всегда ложно. (подстановка Dm + ro + rp == rs -> True избавляется от единственного упоминания rp в обоих корнях).
Доб., а то сам засомневался: что в первом случае решение существует, можно проверить FindInstance. Я добавил rs > 0, иначе FindInstance найдет нули.
In[44]:= FindInstance[Nox >= 0 && ro >= 0 && 1 + Npx > 0 && ro + Nox ro <= rs && Dm + Dm Npx + Npx ro == Nox ro + Npx rs && rs > 0, {Nox, ro, Npx, rs, Dm}] Out[44]= {{Nox -> 1, ro -> 1/4, Npx -> 0, rs -> 1, Dm -> 1/4}}Re: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byRe: Проверка тождественности логических выражений
Posted byСоздание "подпрограммы" с подстановкой переменных
2012-02-16 19:17 (UTC)Есть неявная функция F(Dcr, par1, par2...)==0 .
Надо исследовать ее поведение для каждого из параметров при прочих равных стандартным значениям. Анализ чувствительности функции к изменению параметра, короче.
Внизу это я сделал, все работает.
Однако, прходится многократно повторять в тексте программы одно и то же )за исключением рассматриваемого параметра). Кроме того, есть подозрение, что надо следить за именами дабы не изменилось стандартное значение параметра.
Как бы написать подпрограмму (я пытаюсь вверху), чтобы просто ее вызывать в цикле по количеству параметров с именем очередной переменной, а она бы за меня все делала и даже пальцы загибала?
======================================
"функция Dcr (определение)"
ClearAll[ "Global`*" ] (* стартовая зачистка всех переменных *)
{Ks = 0.099/100, Sm = 7.5/1, Ko = 0.00101, Cm = 0.0075, Kla = 1000.*1,
x0 = 1.5, s0 = 0.5/2, c0 = 1.0 , p0 = 0., Pm = 0,
as = 0.796, ao = 0.747, ap = 1.557, qsm = 1.886,
qom = 0.268 * 1.,
Nox = 1.592, Npx = 0.163 * 1 , mx = 0.0055}
FDCR[K_] := -(Kla Cm ao)/(Sm as) (1 + Nox) (Dcr +
mx/(1 + Nox)) (Dcr + mx - Nox ao*qom/(1 + Ko/Cm) ) (mx +
Dcr (1 + Nox) - Nox as*qsm ) +
Dcr (Dcr + mx) (Dcr + mx - Nox ao*qom ) (mx +
Dcr (1 + Nox) - Nox as*qsm/(1 + Ks/Sm) ) == 0 /. K -> X
FDCR[Kla]
ContourPlot[
{FDCR[ao] ,
Dcr == (-mx + (Nox - Npx) ao*qom/(1 + Ko/Cm) +
Npx as*qsm/(1 + Ks/Sm))/(1 + Npx) }
, { ao, 0 , 1 }, { Dcr, -0.1, 1.9} , FrameLabel -> Automatic ]
"График зависимости Dcr от _ao_ для кинетики с насыщением. !!!!"
ContourPlot[ {-(Kla Cm ao1)/(Sm as) (1 + Nox) (Dcr +
mx/(1 + Nox)) (Dcr + mx - Nox ao1*qom/(1 + Ko/Cm) ) (mx +
Dcr (1 + Nox) - Nox as*qsm )
+ Dcr (Dcr + mx) (Dcr + mx - Nox ao1*qom ) (mx +
Dcr (1 + Nox) - Nox as*qsm/(1 + Ks/Sm) ) == 0 ,
Dcr == (-mx + (Nox - Npx) ao1*qom/(1 + Ko/Cm) +
Npx as*qsm/(1 + Ks/Sm))/(1 + Npx) }
, { ao1, 0 , 1 }, { Dcr, -0.1, 1.9} , FrameLabel -> Automatic ]
"График зависимости Dcr от _ao_ для кинетики с насыщением. !!!!"
Re: Создание "подпрограммы" с подстановкой переменных
2012-02-18 11:08 (UTC)ClearAll["Global`*"] (*стартовая зачистка всех переменных*) varplot[var_Symbol] := Block[{Ks = 0.099/100, Sm = 7.5/1, Ko = 0.00101, Cm = 0.0075, Kla = 1000.*1, x0 = 1.5, s0 = 0.5/2, c0 = 1.0, p0 = 0., Pm = 0, as = 0.796, ao = 0.747, ap = 1.557, qsm = 1.886, qom = 0.268*1., Nox = 1.592, Npx = 0.163*1, mx = 0.0055, varname = ToString[var]}, Block[{var}, ContourPlot[{-(Kla Cm ao)/(Sm as) (1 + Nox) (Dcr + mx/(1 + Nox)) (Dcr + mx - Nox ao*qom/(1 + Ko/Cm)) (mx + Dcr (1 + Nox) - Nox as*qsm) + Dcr (Dcr + mx) (Dcr + mx - Nox ao*qom) (mx + Dcr (1 + Nox) - Nox as*qsm/(1 + Ks/Sm)) == 0, Dcr == (-mx + (Nox - Npx) ao*qom/(1 + Ko/Cm) + Npx as*qsm/(1 + Ks/Sm))/(1 + Npx)}, {var, 0, 1}, {Dcr, -0.1, 1.9}, FrameLabel :> {varname, Subscript[D, cr]}, PlotLabel :> "График зависимости Dcr от " ~~ varname ~~ " для кинетики с насыщением"]]]; varplot[ao] varplot[as]Что происхосит: во-первых; я прячу переменные в блок, иначе непросто будет передать "ao" в функцию — вместо символа будет передаваться присвоенное значение. Внутренний блок переопределяет переменную, переданную как параметр, т. е. var подставляется при вычислении, получается Block[{ao},...]. Дальше понятно — ao во внутреннем блоке не имеет числового значения, остается как есть (вместо вашего ao1), а остальные параметры определены из списка во внешнем блоке.
Сразу много графиков можно построить так:
varplot /@ {ao, as, ap} // Column
Чтобы графики увеличить, добавьре опцию к ContourPlot:
ImageSize -> {400, Automatic}
Re: Создание "подпрограммы" с подстановкой переменных
Posted byСтруктуризация полиномов
2012-02-29 17:42 (UTC)"вот такая последовательность "
CL = CoefficientList[ FXP1 , X2 ]
FullSimplify[CL]
"дала :"
{-DD DK (1 + Ksr)^3 Y2 (DD + msY - ROS Y2 - Ymp) Ymp (DK Y2 +
DD Ymp), (1 + Ksr)^2 (DK^2 Y2^2 (DD + msY - ROS Y2)^2 +
DK Y2 (3 DD (DD + msY)^2 - (DD + msY) (DK (1 + Ksr) +
2 DD (2 + Kor) ROS) Y2 +
ROS (DK (1 + Ksr) + DD (1 + Kor) ROS) Y2^2) Ymp +
DD (DD (DD + msY)^2 - (DD + msY) (2 DK (2 + Ksr) +
DD (1 + Kor) ROS) Y2 +
2 DK (1 + Kor + Ksr) ROS Y2^2) Ymp^2 +
DD (-2 DD (DD + msY) + DK (1 + Ksr) Y2 +
DD (1 + Kor) ROS Y2) Ymp^3 + DD^2 Ymp^4), (1 +
Ksr) (-2 DK (DD + msY) Y2 (DD + msY - ROS Y2) (DD +
msY - (1 + Kor) ROS Y2) - (2 DD (DD + msY)^3 -
3 (DD + msY)^2 (DK (1 + Ksr) + DD (1 + Kor) ROS) Y2 + (DD +
msY) ROS (2 DK (2 + Kor) (1 + Ksr) +
DD (1 + Kor)^2 ROS) Y2^2 -
DK (1 + Kor) (1 + Ksr) ROS^2 Y2^3) Ymp + (2 DD (2 + Ksr) (DD +
msY)^2 - (DD + msY) (DK (1 + Ksr)^2 +
2 DD (1 + Kor) (2 + Ksr) ROS) Y2 +
ROS (DK (1 + Ksr)^2 + DD (1 + Kor)^2 ROS) Y2^2) Ymp^2 -
DD (1 + Ksr) (2 (DD + msY) - (1 + Kor) ROS Y2) Ymp^3), (DD +
msY) (DD + msY - (1 + Kor) ROS Y2) (DD +
msY - (1 + Ksr) Ymp) (DD +
msY - (1 + Kor) ROS Y2 - (1 + Ksr) Ymp)}
Есть у меня уверенность, что этот полином третей степени с переменной Х представим в виде сумму фактор-полиномов:
(X+A)(X+B)(X+C) + (X+D)(X+E)(X+F)
Есть ли способы представить его в такой форме?
вот с более простым у меня получилось так:
FORM01 = (DKla (1 + Kor) (ROS - rro) (-msY + rro Y2) (-msY + rro Y2 +
Ymp + Ksr Ymp) +
DD^2 (DKla (1 + Kor) (ROS - rro) - (1 + Ksr) (ROS + Kor ROS -
rro) rro Ymp) +
DD ((1 + Ksr) (ROS + Kor ROS - rro) rro Ymp (-msY + rro Y2 + Ymp) -
DKla (1 + Kor) (ROS - rro) (-2 msY + 2 rro Y2 + Ymp +
Ksr Ymp))) == 0
parts = { L1 -> DKla (1 + Kor) (ROS - rro) ,
R1 -> (1 + Ksr) (ROS + Kor ROS - rro) rro Ymp ,
Ymprrs -> (DD + msY - rro Y2 )}
partsR = parts /. {Rule -> Equal}
F3 = Assuming[ partsR , Simplify[ FORM01 ] ]
F3 /. parts
Спасибо!
Re: Структуризация полиномов
2012-03-02 11:52 (UTC)Re: Структуризация полиномов
Posted byзанятный случай - BM не упрощает очевидное
2012-03-22 21:48 (UTC){"Naklon=",
1/2 (-1 + (-1 + Kor)/Sqrt[(1 + Kor)^2]) Qor, "Naklon=", -(Qor/(
1 + Kor))}
Simplify[1/2 (-1 + (-1 + Kor)/Sqrt[(1 + Kor)^2]) ]
FullSimplify[1/2 (-1 + (-1 + Kor)/Sqrt[(1 + Kor)^2]) ]
возможно, Вам бу интер
2012-04-03 14:22 (UTC)Решалки и преобразовалки
2012-09-07 19:44 (UTC)Не найдете время посмотреть? Рабочий код внизу.
SolveVAR8 - ничего не решает, но преобразовывает уравнения (немного упростив)поочередно к удобному виду - слева всегда только одна переменная. Важен порядок переменных.
SolveALL - решает одновременно все уравнения (если не зависнет) и максимально их упрощает. Но в левой части могут быть не только переменные.
Вопросы:
1. зачем в SolveVAR8 конструкция {SYSD11a=SYSout} - для резервирования памяти?
2.Можно ли обойтись в ней без DO и как?
3.Как ее заставить вместо Simplify делать FullSimplify?
4. как заставить SolveALL оставлять в левой части только переменные?
Спасибо!
====================
ClearAll[ "Global`*" ] (* стартовая зачистка всех переменных *)
(* привычная форма записи СУ *)
preferEqual0[e_] :=
LeafCount[e] - 100 Count[e, _ == 0, {0, Infinity}]; (* for f(x)==0 *)
SimSYS[SYS_ ] := Simplify[SYS , ComplexityFunction -> preferEqual0 ]
(* Приводит уравнения поодиночке к виду, где в левой части только \
переменная *)
SolveVAR8[ SYSout_, VARout_] := First[ Module[ {SYSD11a= SYSout},
{ (* :=First[ Module[ {SYSD11a=SYSout}, Важно! *)
Do[ SYSD11a[[n2]] =
Part[ Simplify@Solve[ SimSYS[ SYSout[[n2]] ] , VARout[[n2]] ],
1, 1 ] , {n2, 1, Length[ SYSout ] } ] ;
SYSD11a /. {Rule -> Equal} } ] ]
(* Решает все уравнения одновременно при заданных условиях *)
SolveALL[ Assum_, SYSout_, VARout_] :=
FullSimplify[
First[Assuming[Assum ,
Simplify@Solve[ SYSout, VARout ] /. {Rule -> Equal}] ] ]
(* Фукции табличной печати результатов *)
PrintEQn[MegaSYS_ , SYSNAME_ , Label_ ] := Labeled[ Grid[
Prepend[Transpose[MegaSYS], Style[#, {Bold, Blue}] & /@ SYSNAME ],
Frame -> All, ItemSize -> Automatic, Spacings -> {Automatic, 0.75},
Alignment -> Left, BaseStyle -> {Larger, 12} ,
ItemStyle ->
Directive[FontSize -> 12, Black,
ScriptSizeMultipliers -> 1.0] ] , Label ]
"Исходная система уравнений /СУ/ :"
sysNew = {rs*X == as*(Sm - S)*D1, ro == 0, rp*X == ap*P*D1,
rs == D1 + ro + rp, Nox*ro + Npx*rp == D1 + mx, rs == as*ds*S}
"Относительно переменных :"
VARout = {X, ro, rp, rs, D1, S}
sysNew1 = SolveVAR8[ sysNew, VARout ]
sysNew2 = SolveALL[ { C2 == 0 } , sysNew, VARout ]
PrintEQn[{ VARout, sysNew, sysNew1 , sysNew2} ,
{ "VARout", "sysNew", "SolveVAR8" ,
"SolveALL" } , "варианты преобразованния исходной СУ " ]
===========================
прикольно про букофки и символки
2012-12-05 13:14 (UTC)