Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.01;
Скачать: CL | DM;

Вниз

Решить систему нелинейных уравнений   Найти похожие ветки 

 
Галинка ©   (2007-06-04 12:27) [0]

попробовлаа методом последовательных приближений, не получается (((

как еще можно попробовать. И где можно об этом почитать? он-лайн конечно ))


 
Desdechado ©   (2007-06-04 12:29) [1]

Есть точные и приближенные методы.
Посмотри метод Зейделя, метод итераций. В принципе, они простые.


 
Думкин ©   (2007-06-04 12:31) [2]

А каким методом?
Есть метод Ньютона, Стеффенсона и т.д и т.п


 
Галинка ©   (2007-06-04 12:40) [3]

мне все равно каким методом. Главное решить. Уравнения и вправду сложноватые и переменных много ((

спасибо за названия методов. Посмотрю. Метод иттераций пробовала, не дал результатов к сожалению Может неправильно применила. В уравнениях часто встречается теорема косинусов с раздичными переменными. Может можно какую то замену сделать?


 
Думкин ©   (2007-06-04 12:43) [4]

> Метод иттераций пробовала

Каких итераций? Просто итераций в природе не существует. Все численные методы для такого - это и есть те или иные итерации.
Как в уравнениях может встречаться теорема?


 
Александр Иванов ©   (2007-06-04 12:56) [5]

> [4] Думкин ©   (04.06.07 12:43)

Нас почему-то учили именно методу итераций и, как его развитие - метод Зейделя.
А как он еще может называеться?


 
Галинка ©   (2007-06-04 13:00) [6]

Короче, основная сложность в том, что пять переменных. ((( В одном уравнении одновременно три.


 
Думкин ©   (2007-06-04 13:02) [7]

> Александр Иванов ©   (04.06.07 12:56) [5]

А что это такое? Можно мне тогда посмотреть на реализацию?

Насколько я понимаю, в большинстве случаев все сводится к тому, что у сжимающего отображения есть неподвижная точка на определенном множестве и бла-бла.
Мы строим такое сжимающее отображение по уравнению и задаем начальное условие. Потом показываем, что неподвижная точка и есть решение уравнения.
Из начального итерируемся в следующее и т.д. Т.к. отображение сжимающее то с итерациями приближаемся к решению. Приближаться можно по разному.
Для уравнений одного перменного самое известное - метод Ньютона.


 
Галинка ©   (2007-06-04 13:02) [8]

Я часто пользовалась методом последовательных приближений. Но там была как правило одна переменная. И я примерно знала, к чему приближать, т.е. примерное решение было известно. Здесь система более сложная. И я даже приблизительно не могу найти, что тыда можно подставить. Т.е. от чего начинать приближения ((


 
Галинка ©   (2007-06-04 13:04) [9]

Уточнение. Тогда была не то что одна переменная, но более строгая зависимость от одной переменной. Типа температура, теплоемкость, энергия сгорания...


 
Думкин ©   (2007-06-04 13:05) [10]

> Галинка ©   (04.06.07 13:00) [6]

Так ведь непонятно, что и почему не получилось. Для любого метода описываются, как правило, необходимые или достаточные условия применения. Тут с этим как?


 
Иксик ©   (2007-06-04 13:05) [11]


> Думкин ©   (04.06.07 13:02) [7]
> > Александр Иванов ©   (04.06.07 12:56) [5]
>
> А что это такое? Можно мне тогда посмотреть на реализацию?
>

Так иногда обзывают какой-нибудь метод Евклида.


 
Галинка ©   (2007-06-04 13:08) [12]

Думкин ©   (04.06.07 12:43) [4]

Как в уравнениях может встречаться теорема?

Вот так и может, например:
a^2+R^2-2*a*R*cos(theta)  or
(ro - R)^2 + Rg^2 + 2*(ro-R)*Rg*cos(theta_0)...

или неполная теорема косинусов, там где нет двойки у слогаемого с косинусом...


 
Думкин ©   (2007-06-04 13:10) [13]

> Галинка ©   (04.06.07 13:08) [12]

Теорема косинусов - это вполне четкое утверждение для сторон и углов треугольника. То что у вас - это не теорема, а некоторая запись, которая похожа на ту, что может быть использована при формулировке теоремы.


 
Desdechado ©   (2007-06-04 13:14) [14]

Метод итераций прост тем, что там можно задать любую стартовую точку, поставить в систему, найти рассогласования, из них вывести поправку к стартовой точке, поставить снова и т.п.
Точка, естественно, в n-мерном пространстве, где n - количество переменных.
В общем случае для n неизвестных должно быть n уравнений. Если уравнений меньше, задача обычно нерешаема. Если уравнений больше, то в общем случае решений больше 1.
И иметь в виду, что есть ограничения применимости методов.


 
Думкин ©   (2007-06-04 13:19) [15]

> Desdechado ©   (04.06.07 13:14) [14]

По-моему, если уравнений меньше - то многообразие решений может иметь размерность больше 0, а вот если больше - то как раз решений может и не быть.


 
Галинка ©   (2007-06-04 13:27) [16]

Desdechado ©   (04.06.07 13:14) [14]

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

Раньше я например делала так. Задавала начальное значение переменной одной, от которой зависила напрямую вторая переменная, а третья зависела от обеих первых. Потом по третьему переменному строго определялась "принятая" переменная. Вычесленное значение сравнивалось с принятым. Если ошибка была в допустимых приделах, то все в порядке. Если больше - то новое вычесленное значение становилось "принятым" и процедура повторялась... пока не достигалая нужная точность. Это вроде и есть последовательные приближения.

Но  в данной ситуации каждая переменная зависит как минимум от трех других. Т.е. мне нужно для начала три "принятых" значения. Или?


 
Думкин ©   (2007-06-04 13:37) [17]

> Галинка ©   (04.06.07 13:27) [16]

Как у вас устроен итерационный шаг?


 
Галинка ©   (2007-06-04 13:44) [18]

пока никак... я не могу себе пока представить, как можно все это применить, когда надо "принять" минимум три переменных ((


 
Галинка ©   (2007-06-04 13:45) [19]

хотя нет, я конечно пробовала, но ничего не получилось. если хотите, я приведу код, правда он в матлабе ))


 
Галинка ©   (2007-06-04 13:46) [20]

вот код
clear all;
tetha_o = 35*3.14/180; tetha = 80*3.14/180;
rg = 18; eps = 0.01; hno = 12;
rsp = 6; r_b = rg + 0.2; r = r_b + eps;

while (abs(r-r_b)>eps)
   r=r_b;
   ano=rg+hno-rsp;
   aa=(ano^2+r^2-rsp^2-2*ano*r*cos(tetha));
   ab=(r-rsp-ano*cos(tetha));
   rfl_b=0.5*aa/ab;
   aa=(rfl_b-r)^2+rg^2-rfl_b^2+2*(rfl_b-r)*rg*cos(tetha_o);
   ab=(rg-rfl_b+(rfl_b-r)*cos(tetha_o));
   ro=0.5*aa/ab;
   aa=(r*(rfl_b-r-hno)-0.5*hno^2-(rfl_b-r)*(r+hno)*cos(tetha));
   ab=(rfl_b-r-hno-(rfl_b-r)*cos(tetha));
   rsp_b=aa/ab;
   r_b=ano*cos(tetha)+rfl_b-sqrt(ano^2*(cos(tetha))^2+(rfl_b-rsp_b)^2-ano^2);
end
rfl=rfl_b;
rsp=rsp_b;


 
Desdechado ©   (2007-06-04 13:53) [21]

http://window.edu.ru/window_catalog/files/r36976/stup202.pdf
Вот метод Ньютона на примере электрическом.


 
Desdechado ©   (2007-06-04 13:55) [22]

http://www.uni-vologda.ac.ru/students/pm04/pm04mav/%d1%e8%f1%f2%e5%ec%fb/1.htm
А вот для Зейдель для СЛАУ, но смысла не меняет.


 
Галинка ©   (2007-06-04 15:13) [23]

ап

ну может еще кто-то что-то посоветует?


 
Romkin ©   (2007-06-04 15:18) [24]

Метод градиентов :)


 
Alx2 ©   (2007-06-04 15:33) [25]

>Галинка ©   (04.06.07 13:46)

Чего-то не понял где там уравнения, а где переменные.
Можно их явно написать?


 
MBo ©   (2007-06-04 15:34) [26]

http://www.srcc.msu.su/num_anal/lib_na/cat/cat112.htm
http://alglib.sources.ru/optimization/

а тут только блок-схема:
http://alglib.sources.ru/equations/feqxsys.php


 
Галинка ©   (2007-06-04 15:48) [27]

Alx2 ©   (04.06.07 15:33) [25]

сложно. Я попробую ))

rs=(R*(ro-R-h)-0,5*h^2-(ro-R)*(R+h)*cos(theta))/(ro-R-h-(ro-R)*cos(theta));
ro = (a^2+R^2+rs^2-2*a*R*cos(theta))/(2*(R-rs-a*cos(theta)));
h = ro/R+a+sqrt(a^2+(ro-R)^2+2*a*(ro-R)*cos(theta));
R = a*cos(theta)+ro+sqrt(a^2*cos^2(theta)+(ro-rs)^2-a^2);
ro_0 = 0.5*((ro-R)^2+rg^2-ro^2+2*(ro-R*rg*cos(theta_0)))/(rg-ro+(ro-R)cos(theta_0));


 
MBo ©   (2007-06-04 16:02) [28]

>Галинка ©   (04.06.07 15:48) [27]
А что здесь неизвестные?
И какая изначальная задача?


 
Галинка ©   (2007-06-04 16:11) [29]

rg, h, theta, theta_0 - известны;
ro, R, ro_0, a, rs ß - неизвестны;

задача - решить систему.

самыми важными являются величины rs, ro. Их и надо найти, при соответствующих углах, радиусе начальной окружности rg и подъеме толкателя - h.


 
Alx2 ©   (2007-06-04 16:13) [30]

>Галинка ©   (04.06.07 15:48)

Параметру a не нашел из предыдущего числового соответствия.
Скормил системку в Maple, пока увы. Не обнаруживается решение его численными методами (значение a брал от фонаря).

Наверное, придется писать самому, чтобы понять что там творится. :)


 
Alx2 ©   (2007-06-04 16:14) [31]

>Галинка ©   (04.06.07 16:11)

Партизан, однако. :)


 
MBo ©   (2007-06-04 16:15) [32]

>задача - решить систему.
>самыми важными являются величины rs, ro. Их и надо найти, при соответствующих углах, радиусе начальной окружности rg и подъеме толкателя - h

Т.е. имеется некая кинематическая система со связями.
Вот ее и стоит описать, может, другой подход найдется.


 
Галинка ©   (2007-06-04 16:21) [33]

а неизвестно, но оно подчиняется зависимости a + rs = R + h


 
Галинка ©   (2007-06-04 16:24) [34]

MBo ©   (04.06.07 16:15) [32]

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

Я лучше код по твоей ссылке проанализирую. Авось и пойму как оно все работает )))


 
isasa ©   (2007-06-04 16:26) [35]

Поищи в Инете или справочнике по математике(раздел численные методы) по ключевому слову матрица Якоби, или Якобиан.
Мне помогло. :)


 
Галинка ©   (2007-06-04 16:31) [36]

isasa ©   (04.06.07 16:26) [35]

нашла уже. Осталось только матрицы сделать. Вот тут собака и порылась. Т.к. переменные все время перемножаются между собой. Т.е. в одном одночлене полинома они могут и складываться и перемножаться ((


 
isasa ©   (2007-06-04 16:43) [37]

Напиши функции по вычислению частных производных, в которые параметром передай нужную функцию вычисления полинома...
Мне помогло. :)


 
Krants ©   (2007-06-04 17:09) [38]


> Галинка ©   (04.06.07 12:27)  [0]


Если просто надо решить, то маткад легко справиться...
Если решение должно быть програмное, то тот-же маткад! Он может решать параметро###ваные (сложно выговарить) системы, т.е. каждое искомое значение приводить в одно парам-ое уравнение... (Которое и переложишь в программу)


 
Alx2 ©   (2007-06-04 17:22) [39]

>Галинка ©   (04.06.07 16:11)

Лучшее, что получилось (минимум невязки) со значениями из поста
"Галинка ©   (04.06.07 13:46)"

rs = 3.050413, R= 0.033392, ro= 0.207761,a = 2.885776, ro_0= 9.633942

Сумма квадратов отклонений "от того, что нужно " 17.7
:)


 
Галинка ©   (2007-06-04 17:42) [40]

Alx2 ©   (04.06.07 17:22) [39]

вот и получается, фигня извини. Не обижайся, я понимаю, что с лучшими намерениями. Но ответ совершенно неудовлетворительный. А какие углы и какое подняти и началный радиус были?



Страницы: 1 2 вся ветка

Текущий архив: 2007.07.01;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.019 c
1-1178164475
Novice
2007-05-03 07:54
2007.07.01
Поиск файлов FindNext, FindFirst


15-1180808004
Иксик
2007-06-02 22:13
2007.07.01
Проверка введенного значения


2-1181220749
voe
2007-06-07 16:52
2007.07.01
DBF и пароль


15-1180759460
TUser
2007-06-02 08:44
2007.07.01
Звук в винде


2-1181159162
Василий Кузнецов
2007-06-06 23:46
2007.07.01
Указатель