2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Решение системы нелинейных ур-ний без начального приближения
Сообщение21.03.2010, 20:16 


21/03/10
7
Здравствуйте!!!
Мне необходимо решить систему из 18 нелинейных уравнений. Сложность заключается в том, что не известны начальные приближения.
Система имеет вид:
$$\ K_1=\frac {P_O} {\sqrt{\ P_{O_2}}};\ K_2=\frac {P_{O_3}} {\sqrt{\ P_{O_2}^3}};\ K_3=\frac {P_H} {\sqrt{\ P_{H_2}}};\ K_4=\frac {P_{H_2}^2 P_{O_2}} {\ P_{H_2}^2};\ K_5=\frac {P_{OH}} {\sqrt{\ P_{O_2}P_{H_2}}};$$$$\ K_6=\frac {P_C P_{O_2}} {\ P_{C{O_2}}};\ K_7=\frac {P_C \sqrt{\ P_{O_2}}} {\ P_{CO}};\ K_8=\frac {P_C P_{H_2}^2} {\ P_{C{H_4}}};\ K_9=\frac {P_N} {\sqrt{\ P_{N_2}}};\ K_{10}=\frac {P_N P_O} {\ P_{NO}};$$$$\ K_{11}=\frac {P_{NO} \sqrt{\ P_{O_2}}} {\ P_{NO_2}};\ K_{12}=\frac {\sqrt{\ P_{N_2}P_{H_2}^3}} {\ P_{NH_3}};\ K_{13}=\frac {P_{NO}^3 P_{H_2O}} {\ P_{HNO_3}^2 P_{NO}};\ K_{14}=\frac {P_C \sqrt{\ P_{N_2}P_{H_2}}} {\ P_{HCN}};$$$$\alpha_p(P_O+2P_{O_2}+3P_{O_3}+P_{OH}+P_{{H_2}O}+3P_{HNO_3}+P_{CO}+2P_{CO_2}+2P_{NO_2}+P_{NO})=P_C+P_{CO}+P_{CO_2}+P_{CH_4}+P_{HCN}$$$$\beta_p(P_{NO_2}+P_N+P_{NO}+2P_{N_2}+P_NH_3}+P_{HNO_3}+P_{HCN})=P_O+2P_{O_2}+3P_{O_3}+P_{OH}+P_{{H_2}O}+3P_{HNO_3}+P_{CO}+2P_{CO_2}+2P_{NO_2}+P_{NO}$$$$\gamma_p(P_H+2P_{H_2}+P_{H_2O}+P_{OH}+4P_{CH_4}+3P_{NH_3}+P_{HNO_3}+P_{HCN})=P_C+P_{CO}+P_{CO_2}+P_{CH_4}+P_{HCN}$$$$P=P_{O}+P_{O_2}+P_{O_3}+P_{H}+P_{H_2}+P_{OH}+P_{H_2O}+P_{C}+P_{CO}+P_{CO_2}+P_{CH_4}+P_{N}+P_{N_2}+P_{NO}+P_{NO_2}+P_{NH_3}+P_{HNO_3}+P_{HCN}$$
$\ K_1-K_{14}, \alpha_p, \beta_p, \gamma_p, P - $известны
Подскажите, пожалуйста, с помощью какой программы (команды) возможно выполнить решение такой системы.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение22.03.2010, 20:14 
Аватара пользователя


15/01/06
200
nik4911 в сообщении #300535 писал(а):
Здравствуйте!!!
Мне необходимо решить систему из 18 нелинейных уравнений. Сложность заключается в том, что не известны начальные приближения.
Система имеет вид:
Подскажите, пожалуйста, с помощью какой программы (команды) возможно выполнить решение такой системы.


Полагаю, любой мат.пакет с этим делом должен справиться, если конечно нужно численное решение. Хотя может я какого-то подвоха в системе не вижу... Например, Mathematica, команда NSolve[], если не имеете такой программы, тогда приведите все известные коэффициенты в численном виде, лучше даже сразу в уравнения вставьте, избавьтесь от нижних индексов у Р в формуле и я вам отвечу, решит Математика или нет :D От нижних индексов конечно необязательно избавляться, просто мне не очень хочется, честно говоря, морочиться после конвертирования ваших формул в формулы Математики, убирая руками то что ей не понравится.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение23.03.2010, 17:12 
Заслуженный участник


15/05/05
3445
USA
nik4911 в сообщении #300535 писал(а):
Сложность заключается в том, что не известны начальные приближения.
Кроме того, Ваша система - с ограничениями:
- большая часть переменных не равна 0.
- все переменные скорее всего неотрицательны.
Воспользуйтесь известным законом преферанса: "Хода нет - ходи с бубей".
Если никак нельзя оценить начальные приближения из физико-химических соображений (что довольно странно), то наверное можно оценить диапазон изменения переменных и взять, например, середину.
Если никакой информации нет, то попробуйте что-то типа "случайного поиска" - задавайте случайно сгенерированные начальные приближения и сравнивайте полученные решения.
Имейте в виду, что Ваша система может иметь несколько решений или не иметь их совсем.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение23.03.2010, 21:41 


21/03/10
7
Leierkastenmann попытался решить в Mathematica.. Выдает ошибку

During evaluation of In[2]:= Rule::rhs: Pattern P_O2 appears on the right-hand side of rule {Solve`RecipVar[1/Solve`RadVar[Sqrt[Solve`SolvVar[<<1>>] Solve`SolvVar[<<1>>]]]],Solve`RecipVar[1/Solve`RadVar[Sqrt[Solve`SolvVar[Pattern[<<2>>]]]]],<<7>>,Solve`RecipVar[1/Solve`SolvVar[P_H2O]],<<9>>}->{<<1>>}. >>
During evaluation of In[2]:= General::stop: Further output of Rule::rhs will be suppressed during this calculation. >>
During evaluation of In[2]:= GroebnerBasis::poly: (P_OH/Sqrt[P_H2 P_O2]==1.433837716) P_H2 is not a polynomial. >>

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение23.03.2010, 21:55 
Аватара пользователя


09/05/06
115
Вы не могли бы выслать более полное ТЗ с описанием тематики, исходных данных. Посмотрю, может смогу чем помочь. Выглядит страшновато, охота упростить запись.
unihomelab@ya.ru
$$K_4, K_{13} $$
Тут нет ошибки?

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение23.03.2010, 22:43 


21/03/10
7
$K_4=\frac {P_{H_2}^2 P_{O_2}} {\ P_{H_2O}^2}$, а вот $K_{13}$ сам сомневаюсь... Возможно в книге опечатка...Но даже при изменении элементов этого уравнения выдает ошибку в Mathematic'е.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение23.03.2010, 22:48 
Аватара пользователя


15/01/06
200
nik4911 в сообщении #301522 писал(а):
Leierkastenmann попытался решить в Mathematica.. Выдает ошибку

During evaluation of In[2]:= Rule::rhs: Pattern P_O2 appears on the right-hand side of rule {Solve`RecipVar[1/Solve`RadVar[Sqrt[Solve`SolvVar[<<1>>] Solve`SolvVar[<<1>>]]]],Solve`RecipVar[1/Solve`RadVar[Sqrt[Solve`SolvVar[Pattern[<<2>>]]]]],<<7>>,Solve`RecipVar[1/Solve`SolvVar[P_H2O]],<<9>>}->{<<1>>}. >>
During evaluation of In[2]:= General::stop: Further output of Rule::rhs will be suppressed during this calculation. >>
During evaluation of In[2]:= GroebnerBasis::poly: (P_OH/Sqrt[P_H2 P_O2]==1.433837716) P_H2 is not a polynomial. >>


Код, или фрагмент кода, который пытаетесь выполнить приведите, чтобы можно было понять что происходит.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение23.03.2010, 23:37 


21/03/10
7
NSolve[
{P_O/Sqrt[P_O2] == 0.489666057,
P_O3/(P_O2^(3/2)) == 4.06537*10^(-6),
P_H/Sqrt[P_H2] == 0.587489353,
P_H2^2*P_O2/P_H2O^2 == 0.034833732,
P_OH/Sqrt[P_O2*P_H2] == 1.433837716,
P_C*P_O2/P_CO2 == 3.80014*10^(-9),
P_C*Sqrt[P_O2]/P_CO == 2.44287*10^(-9),
P_C*P_H2^2/P_CH4 == 53.8517722,
P_N/Sqrt[P_N2] == 0.000219837,
P_N*P_O/P_NO == 0.000545507,
Sqrt[P_O2]*P_NO/P_NO2 == 1043.758439,
Sqrt[P_N2*P_H2^3]/P_NH3 == 192132.1311,
P_NO^3*P_H2O/(P_HNO3^2*P_NO) == 2.35126*10^15,
P_C*Sqrt[P_N2*P_H2]/P_HCN == 0.00631248,
0.167871222*(P_O + 2*P_O2 + 3*P_O3 + P_OH + P_H2O + 3*P_HNO3 +
P_CO + 2*P_CO2 + 2*P_NO2 + P_NO) ==
P_C + P_CO + P_CO2 + P_CH4 + P_HCN,
0.26595*(P_NO2 + P_N + 2*P_N2 + P_NO + P_NH3 + P_HNO3 + P_HCN) ==
P_O + 2*P_O2 + 3*P_O3 + P_OH + P_H2O + 3*P_HNO3 + P_CO +
2*P_CO2 + 2*P_NO2 + P_NO,
0.511*(P_H + 2*P_H2 + 2*P_H2O + P_OH + 4*P_CH4 + 3*P_NH3 + P_HNO3 +
P_HCN) == P_C + P_CO + P_CO2 + P_CH4 + P_HCN,
P_O + P_O2 + P_O3 + P_H + P_H2 + P_OH + P_H2O + P_C + P_CO +
P_CO2 + P_CH4 + P_N + P_N2 + P_NO + P_NO2 + P_NH3 + P_HNO3 +
P_HCN == 70}
{P_O, P_O2, P_O3, P_H, P_H2, P_OH, P_H2O, P_C, P_CO, P_CO2, P_CH4,
P_N, P_N2, P_NO, P_NO2, P_NH3, P_HNO3, P_HCN}]

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение24.03.2010, 10:43 
Аватара пользователя


09/05/06
115
Можно продолжить, только если Вы серьёзно настроены перенять методы решения, которые появятся в процессе обсуждения. Специалисты есть.
Разместите свою задачу тут Форум Mathcad с подробным описанием от себя.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение24.03.2010, 19:59 
Аватара пользователя


15/01/06
200
nik4911 в сообщении #301588 писал(а):
NSolve[
{P_O/Sqrt[P_O2] == 0.489666057,
P_O3/(P_O2^(3/2)) == 4.06537*10^(-6),
P_H/Sqrt[P_H2] == 0.587489353,
P_H2^2*P_O2/P_H2O^2 == 0.034833732,
P_OH/Sqrt[P_O2*P_H2] == 1.433837716,
P_C*P_O2/P_CO2 == 3.80014*10^(-9),
P_C*Sqrt[P_O2]/P_CO == 2.44287*10^(-9),
P_C*P_H2^2/P_CH4 == 53.8517722,
P_N/Sqrt[P_N2] == 0.000219837,
P_N*P_O/P_NO == 0.000545507,
Sqrt[P_O2]*P_NO/P_NO2 == 1043.758439,
Sqrt[P_N2*P_H2^3]/P_NH3 == 192132.1311,
P_NO^3*P_H2O/(P_HNO3^2*P_NO) == 2.35126*10^15,
P_C*Sqrt[P_N2*P_H2]/P_HCN == 0.00631248,
0.167871222*(P_O + 2*P_O2 + 3*P_O3 + P_OH + P_H2O + 3*P_HNO3 +
P_CO + 2*P_CO2 + 2*P_NO2 + P_NO) ==
P_C + P_CO + P_CO2 + P_CH4 + P_HCN,
0.26595*(P_NO2 + P_N + 2*P_N2 + P_NO + P_NH3 + P_HNO3 + P_HCN) ==
P_O + 2*P_O2 + 3*P_O3 + P_OH + P_H2O + 3*P_HNO3 + P_CO +
2*P_CO2 + 2*P_NO2 + P_NO,
0.511*(P_H + 2*P_H2 + 2*P_H2O + P_OH + 4*P_CH4 + 3*P_NH3 + P_HNO3 +
P_HCN) == P_C + P_CO + P_CO2 + P_CH4 + P_HCN,
P_O + P_O2 + P_O3 + P_H + P_H2 + P_OH + P_H2O + P_C + P_CO +
P_CO2 + P_CH4 + P_N + P_N2 + P_NO + P_NO2 + P_NH3 + P_HNO3 +
P_HCN == 70}
{P_O, P_O2, P_O3, P_H, P_H2, P_OH, P_H2O, P_C, P_CO, P_CO2, P_CH4,
P_N, P_N2, P_NO, P_NO2, P_NH3, P_HNO3, P_HCN}]


Не используйте символ "_", в математике это специальный символ, не факт, что она должным образом понимает что вы ей хотите сказать, а точнее даже факт, что она не понимает что вы ей говорите. Поставьте запятую между массивом уравнений и массивом переменных и тогда она перестанет писать вам такие страшные вещи.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение24.03.2010, 21:18 


21/03/10
7
Leierkastenmann Пришлось вспомнить алфавит... Записал следующим образом:
NSolve[{a/Sqrt[b] == 0.489666057,
c/(b^(3/2)) == 4.06537*10^(-6),
d/Sqrt[e] == 0.587489353,
e^2*b/g^2 == 0.034833732,
f/Sqrt[b*e] == 1.433837716,
h*b/j == 3.80014*10^(-9),
h*Sqrt[b]/i == 2.44287*10^(-9),
h*e^2/k == 53.8517722,
l/Sqrt[m] == 0.000219837,
l*a/n == 0.000545507,
Sqrt[b]*n/o == 1043.758439,
Sqrt[m*e^3]/p == 192132.1311,
n^3*g/(r^2*n) == 2.35126*10^15,
h*Sqrt[m*e]/s == 0.00631248,
0.167871222*(a + 2*b + 3*c + f + g + 3*r + i + 2*j + 2*o + n) ==
h + i + j + k + s,
0.26595*(o + l + 2*m + n + p + r + s) ==
a + 2*b + 3*c + f + g + 3*r + i + 2*j + 2*o + n,
0.511*(d + 2*e + 2*g + f + 4*k + 3*p + r + s) == h + i + j + k + s,
a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + r +
s == 70},
{a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, r, s}]

А Mathematica вообще отказывается выполнять расчет... Где на этот раз я ошибся?
PS Прошу прощения за назойливость...

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение24.03.2010, 21:36 
Аватара пользователя


15/01/06
200
nik4911 в сообщении #301978 писал(а):
Leierkastenmann Пришлось вспомнить алфавит... Записал следующим образом:

А Mathematica вообще отказывается выполнять расчет... Где на этот раз я ошибся?
PS Прошу прощения за назойливость...


Отказывается это что значит? Ошибки пишет или просто думает? В общем-то синтаксических ошибок у вас нет, должна все решать. Другое дело, что если система очень наворочанная, то математике к примеру может памяти не хватить или просто она погрузится в долгие раздумья и будет очень долго считать.

-- Ср мар 24, 2010 22:05:49 --

Да, в самом деле не желает решать. Похоже просто так вот в лоб ее не победить. Я и NDSolve пробовал, и FindRoot c генерацией всевозможных случайных начальных приближений.
Тут либо надо приводить уравнения к виду, на котором методы, используемые Математикой, не загнутся либо посомневаться насчет правильности системы.
Я вот на числа повнимательней посмотрел и как-то взяли меня сомнения. Во-первых, все переменные должны быть положительны, это же у вас судя по всему давления какие-то? Во-вторых, такие соотношения больших порядков (до девятого) вроде как намекают на то, что разброс в значениях переменных должен быть большой, в таком случае не будет беды, если от части из них в линейных уравнениях можно избавиться, а даже может быть и польза будет. Но тут все от физической постановки зависит. Либо же наоборот, все переменные одного порядка, тогда вопрос - откуда такие соотношения между ними?

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение25.03.2010, 08:50 
Аватара пользователя


09/05/06
115
nik4911, убедительная просьба, если тут ничего не получится и Вы решите запостить задачу в маткадовский форум, то замените все свои переменные на x1, x2, x3, ... , x18, а все константы на k1, k2, ..., включая альфу, бетту, гамму и P. Так будет проще абстрагироваться.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение25.03.2010, 22:07 


21/03/10
7
Попытаюсь найти первоисточник (придется поискать в библиотеках)... Может он что-либо прояснит.

 Профиль  
                  
 
 Re: Решение системы нелинейных ур-ний без начального приближения
Сообщение25.03.2010, 22:50 
Аватара пользователя


15/01/06
200
nik4911 в сообщении #302445 писал(а):
Попытаюсь найти первоисточник (придется поискать в библиотеках)... Может он что-либо прояснит.


Первоисточник чего? Этой системы? Может вам просто сформулировать как звучит ваша задача, тогда и понятней будет что делать. Или решить эту систему и есть задача?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group