Текущий архив: 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