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, Супермодераторы



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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