Численные методы. Уравнения. Системы алгебраических уравнени

Сообщение №7562 от - 22 апреля 2003 г. 21:01
Тема: Численные методы. Уравнения. Системы алгебраических уравнени

Численные методы. Уравнения. Системы алгебраических уравнений.


Отклики на это сообщение:

Метод разработан Драгилевым А.В.
Метод численного решения системы нелинейных уравнеий.
Изложение сути метода можно посмотреть на сайте http://stocktrader10.tripod.com/
(извините заранее за корявости на сайте) . Пусть не введёт в заблуждение
внешняя похожесть метода на метод продолжения по параметру.
Дополнение к информации на сайте : на основе метода можно рисовать
(строить) пространственные кривые , изображать в движении довольно
сложные механизмы. Метод не сложен в программировании.
Имеются версии программ , написанные на Delphi , в частности , для нахождения
корней системы нелинейных уравнений.
Рад буду поделиться , отвечу на все вопросы .


Необходим совет или помощь по решению системы нелинейных уравнений. Уравнения второго порядка, с тригонометрическими функциями. Каким образом решаются такие системы?
Заранее благодарен за помощь.



> Необходим совет или помощь по решению системы нелинейных уравнений. Уравнения второго порядка, с тригонометрическими функциями. Каким образом решаются такие системы?
> Заранее благодарен за помощь.

Решаем методом Ферма! Для простоты пусть имеется три неизвестные.
{F1(x,y,z)=0
{F2(x,y,z)=0
{F3(x,y,z)=0
___Пусть (x0,y0,z0)-начальное приближение.
Каждое следующее приближение находится по формулам
xi+1=xi+ddx
yi+1=yi+ddy
zi+1=zi+ddz
___Поправки ddx, ddy и ddz вычисляются из системы:
{dF1/dx*ddx+dF1/dy*ddy+dF1/dz*ddz=-F1(xi,yi,zi)
{dF2/dx*ddx+dF2/dy*ddy+dF2/dz*ddz=-F2(xi,yi,zi)
{dF3/dx*ddx+dF3/dy*ddy+dF3/dz*ddz=-F3(xi,yi,zi)

Обращаю особое внимание, что в этой системе имеются в виду ЧАСТНЫЕ
производные, взятые в точке (xi,yi,zi).
Все.


> Решаем методом Ферма!

Ошибочка вышла: это метод НЬЮТОНА.


> Все.

Добрый день, Ираклий!

Недостатки метода:
(1) Необходимо начальное приближение.
(2) Функции F1,F2,F3 должны быть дифференцируемы.
(3) Сходится – не сходится, - вечная проблема метода Ньютона.
(4) А если решений несколько? Континуум?

Короче говоря, всем хорошо известные недостатки метода Ньютона.


Уважаемые математики, тут есть такая для меня не простая задача.
У меня есть система билинейных уравнений из 18 неизвестных. Вот некоторые из них:
A3*A5-A4*A6+B3*B5-B4*B6+C3*C5-C4*C6=0
0.5*(A3^2-A4^2+B3^2-B4^2+C3^2-C4^2)+A1*A5-A2*A6+B1*B5-B2*B6+C1*C5-C2*C6=0
0.5*(A5^2-A6^2+B5^2-B6^2+C5^2-C6^2)=0
A5*A6+B5*B6+C5*C6=0
0.5*(A1^2+A2^2+A3^2+A4^2+A5^2+A6^2)=1/3
и т.д.
я знаю что эта система имеет различные решения. Вопрос: можно ли аналитически показать все решения системы или необходимо решать такую систему только численными методами. Трудность для меня с численными методами состоит в том, что нет гарантии, что найдены все решения системы, да и сами численные методы не всегда приводят к решению системы. Спасибо за комментарии.


Доброе время суток.
Есть один численный метод. Точно не помню как он называется... Вроде бы итерационный метод Ньютона, он же метод касательных. Метод приближенного решения нелинейных уравнений. Реккурентная формула выглядит так:
x(n)=x(n-1) - f(x(n-1))/f'(x(x-1)).
Все бы хорошо, но у него есть одна бага. Если участок, на котором находится искомый корень, имеет точки, в которых производная обращается в 0, или в бесконечность(при этом сама функция существует), то последовательность расходится, не смотря на то что корень все таки есть. Вопрос вот в чем. Как обойти эту проблемму, и существуют ли более стабильные методы?



> Есть один численный метод.

Раз метод численный, значит алгоритм--программа--реализация на вычислительной системе.

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

В задаче нахождения корня шаг - это по x(n) вычислить x(n+1).

Там и тут - одинаков критерий качества программы. За конечное, минимальное число шагов достичь успеха. При решении уравнения успех - «Найден корень с заданной точностью».

> Все бы хорошо, но у него есть одна бага.

Если бы Вы разрабатывали программу для шахмат, то Вы бы не стали ли бы делать программу такой, чтобы ходил только один конь! У него «бага». Почему же Вы говорите, что вот мол «Есть один численный метод».

Программа оптимального поиска корня должна на каждом шаге применять наиболее оптимальный для ситуации метод, обеспечивающий максимальную скорость (двухстороннюю) сходимости к корню.


> Раз метод численный, значит алгоритм--программа--реализация на вычислительной системе.

> Проведем аналогию с программой для игры в шахматы.
> И там и тут за конечное число шагов необходимо достичь успеха.
> В шахматах понятно, что такое шаг.

> В задаче нахождения корня шаг - это по x(n) вычислить x(n+1).

> Там и тут - одинаков критерий качества программы. За конечное, минимальное число шагов достичь успеха. При решении уравнения успех - «Найден корень с заданной точностью».

> > Все бы хорошо, но у него есть одна бага.

> Если бы Вы разрабатывали программу для шахмат, то Вы бы не стали ли бы делать программу такой, чтобы ходил только один конь! У него «бага». Почему же Вы говорите, что вот мол «Есть один численный метод».

> Программа оптимального поиска корня должна на каждом шаге применять наиболее оптимальный для ситуации метод, обеспечивающий максимальную скорость (двухстороннюю) сходимости к корню.

Вы не поняли... Это я ее назвал багой. На самом деле просто у метода есть ограничение. На промежутке в котором находится корень и в котором мы будем работать функция должна быть непрерывно-дифференцируема и ее производная не должна обращаться в 0. Вопрос лишь в том, луществует ли метод без такого ограничения. Пусь даже более медленный. Это не важно. (если конечно же это не прямой перебор:))


> Это я ее назвал багой.

Кого её?


> > Это я ее назвал багой.

> Кого её?

Что значит кого ее??? Ограничение есть у метода, а мне нужен без ограничения.


> >>Это я ее назвал багой.
> >Кого её?
> Что значит кого ее??? Ограничение есть у метода, ….

Т.е. бага её – метода? Метод это и есть «её»

> а мне нужен без ограничения.
Так я Вас отлично поняла. И привела аналогию с программой, которая может противостоять Вам в шахматы.

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

Какой бы метод (один) Вы не использовали «на старуху найдется проруха». Я подразумеваю то, что найдется функция из какого-то класса (функций), для которого в Вашем методе будет «бага».

Вам необходимо располагать набором «фигур», чтобы «победить» функцию.
Что это значит, - если Вы поймали интервал перемены знака функции, то какой бы «плохой» она не была, Ваш алгоритм должен обеспечить сходимость к корню!
Если алгоритм «вцепился» в интервал перемены знака, - функции конец. Победа должна быть за Вами! Алгоритм (даже) должен обладать возможностью так сузить интервал перемены знака, чтобы в используемой Вами вычислительной системе между точками перемены знака «в машине не осталось чисел».

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

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

Этими фигурами могут быть (кроме названного Вами метода):
__ Метод хорд.
__ Метод парабол.
__ метод половинного деления.
__ т.д.

Да и от рассмотренного Вами метода Ньютона целесообразно отказаться, т.к. он требует на каждом шаге вычисления производной функции.
А функция – то может быть очень сложной (и «дорогой» при вычислении).
Например, получаться в результате интегрирования некоторой системы дифференциальных уравнений.

Поэтому лучше заменить фигуру - «метод Ньютона» на «метод секущих, основанный на методе Ньютона».

Так я думаю!


Все это замечательно, но может быть я буду решать, какой метод мне подходит, а какой нет?

Если быть точным, то мои функции обладают след. свойствами:
f(0)>0, f - непрерывны, имеют конечное число экстремумов на любом конечном промежутке. Меня интересует первый корень, который обязательно будет положителен. Т.е. функция положительна в нуле, далее при движении в положительную сторону по области определения она ведет себя как угодно, при этом оставаясь непрерывной и положительной, и в некоторый момент первый раз меняет знак. Далее она может еще несколько раз менять знак, НО меня интересует именно первый корень. Функции, которые меня интересуют ВСЕ обладают такими свойствами и метод касательных не подходит только потому что функция на своем первом положительном промежутке может быть недифференцируема или производная может обращаться в ноль. Производную мне взять СОВСЕМ не трудно, потому что не я ее беру, а мат. сопроцессор.

Так вот, в чем собственно вопрос. Есть такие функции (см. выше). Мне все равно, как решать эти уравнения - хоть плавающими интегралами - главное чтобы они решались численно. Так вот может найдется какой-нибудь метод - пусть самый медленный - который сможет дать мне ответ при вышеперечисленных условиях???


> Все это замечательно, но может быть я буду решать, какой метод мне подходит, а какой нет?

Может быть.


Самый надежный метод - деления отрезка пополам. Требует только непрерывности функции на отрезке. Как правило в стандартных программах (например функция root в MathCade) используется его комбинация с методом хорд.


> Требует только непрерывности функции на отрезке.

Зачем это требование?


Для одномерного случая элементарно. Метод хорд. Смотри M.Я. Выгодский "Справочник по высшей математике" параграф 289. "Решение уравнений. Способ хорд." Там разжёвано.
Единственно надо дойти до перемены знака от начала отрезка, двигайся шагами, заведомо меньшими, чем растояние между корнями. Как только возникнет перемена знака функции натравливай метод хорд. Хочешь следующий корень - двигайся дальше.


> Для одномерного случая элементарно. Метод хорд. Смотри M.Я. Выгодский "Справочник по высшей математике" параграф 289. "Решение уравнений. Способ хорд." Там разжёвано.
> Единственно надо дойти до перемены знака от начала отрезка, двигайся шагами, заведомо меньшими, чем растояние между корнями. Как только возникнет перемена знака функции натравливай метод хорд. Хочешь следующий корень - двигайся дальше.

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


> Самый надежный метод - деления отрезка пополам. Требует только непрерывности функции на отрезке. Как правило в стандартных программах (например функция root в MathCade) используется его комбинация с методом хорд.

Но ведь в этом методе между концами отрезка должен быть обязательно один корень. А я не знаю, сколько у меня там будет корней.


> > Требует только непрерывности функции на отрезке.

> Зачем это требование?

Теорему Вейерштрасса почитай - поймешь зачем.


> > Требует только непрерывности функции на отрезке.

> Зачем это требование?

Тоесть не Вейерштрасса, а Больцано-Коши.



(1) Доказательство существования корня и собственно вычисление корня – это две совершенно разные задачи. В теме идет речь о нахождении (вычислении) корня.

(2) На интервале перемены знака функция может быть разрывной и иметь корень. В этой ситуации к такой функции может быть применен как метод деления пополам, так и меток хорд.

Успехов!


> Тоесть не Вейерштрасса, а Больцано-Коши.

Непрерывность функции на интервале перемены знака является достаточным условием существования корня на этом интервале. Но не является необходимым.

Желаю множество успехов!


> > Тоесть не Вейерштрасса, а Больцано-Коши.

> Непрерывность функции на интервале перемены знака является достаточным условием существования корня на этом интервале. Но не является необходимым.

> Желаю множество успехов!

Да, но в этом интервале может существовать куча корней, а метод половинного деления нам даст неизвестно какой из них. А мне нужен минимальный положительный.


> >Тоесть не Вейерштрасса, а Больцано-Коши.

> >Непрерывность функции на интервале перемены знака является достаточным условием существования корня на этом интервале. Но не является необходимым.

> >Желаю множество успехов!

> Да, но в этом интервале может существовать куча корней, а метод половинного деления нам даст неизвестно какой из них. А мне нужен минимальный положительный.

Советую Вам уяснить, что не существует метода поиска корня, пригодного для любого класса функций. Возвращаясь к аналогии с программой игры в шахматы, можно сказать, что на любую программу ВСЕГДА найдется более сильный игрок или программа эффективнее рассматриваемой.

Разработка оптимальной программы поиска корня и анализ функции, для которой предполагается использовать программу, – две совершенно разные задачи.

Например, такая функция F(x) на прямой.
При нуле F(x) = -1.0; Во всех остальных точках F(x) = sin(1.0/x).
Каков для такой функции минимальный положительный корень?


Метод хорд - хороший метод, а главное - простой, как валенок.
Для сходимости достаточно существование функции в интервале поиска и единственность корня там же...


> Метод хорд - хороший метод, а главное - простой, как валенок.
> Для сходимости достаточно существование функции в интервале поиска и единственность корня там же...

Только иногда он сходится очень плохо.
Например, функция:
f(x) = 0.0001*x при x < 0
f(x) = 1000*x при x > 0

Нужно найти корень в интервале (-1, 1). Ясно, что это x = 0. А вот прикиньте, сколько итераций потребуется, чтобы до него добраться методом хорд (хотя бы с точностью Δx = 0.01)

Самый лучший способ - самый дубовый, метод дихотомии


> Самый лучший способ - самый дубовый, метод дихотомии

И в чем же заключаются его преимущества?


> > Самый лучший способ - самый дубовый, метод дихотомии

> И в чем же заключаются его преимущества?

Хотя бы в том, что за определенное количество шагов будет достигнута определенная точность нахождения корня. Скажем, корень ищется на отрезке длиной 1, необходимая точность 0.001 Можно быть уверенным, что за десяток шагов она будет достигнута.

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


> Самый лучший способ - самый дубовый, метод дихотомии

Зря Вы товарищи метод дихотомии (МД) обижаете :). Он, конечно, медленно сходящийся, но в каком-то смысле и он является наилучшим (оптимальным). В частности:

1. Если известно, что корень принадлежит некоторому отрезку [a,b] (при этом F(a)*F(b) < 0) и нет никаких априорных предположений о его локализации внутри отрезка, то в первом предположении (например, в соответствии с принципом максимума энтропии) естественно предположить равномерную распределенность корня на [a,b].
Если к тому же информация от любого приближения (пробы) носит "ординальный" характер (т.е. корень лежит либо "правее" либо "левее" взятой пробы), то МД оказывается оптимальным, когда в качестве критерия оптимальности фигурирует минимизация математического ожидания "вилки" (отрезка, которому достоверно принадлежит корень) спустя n шагов алгоритма.

2. МД оказывается оптимальным и когда (в условиях п.1) позволяется разбиение отрезка не на две, а на любое число частей (при этом шагом по прежнему считается вычисление знака функции в точке - "проба"). То есть позволяется делить отрезок на любое число (необязательно равных) частей и за "вилку" принимается та часть, на которой произошла смена знака.

3. Наконец, он оказывается оптимальным, когда (в условиях п.2) в рамках одного разбиения мы вольны брать не все пробы, а лишь пока не сменится знак функции (остальные вычисления нецелесообразны).


> 3. Наконец, он оказывается оптимальным, когда (в условиях п.2) в рамках одного разбиения мы вольны брать не все пробы, а лишь пока не сменится знак функции (остальные вычисления нецелесообразны).

Что Вы вкладываете в термин «метод оказывается оптимальным»?


Коэффициенты матрицы А(100,100) представляют собой рациональные числа 1 000 000+t, где t- случайное рациональное число [0,1]. Возможно ли предсказуемое решение таких СЛАУ ? Если да ,то какими методами ? Буду признателен за возможный ответ.


> Коэффициенты матрицы А(100,100) представляют собой рациональные числа 1 000 000+t, где t- случайное рациональное число .....

Вы упираете на рациональность чисел. А разве при численном решении в вычислительной системе могут быть другие числа?


> Что Вы вкладываете в термин «метод оказывается оптимальным»?

Метод является оптимальным в смысле критерия, приведенного в п.1 - минимизация математического ожидания "вилки" (отрезка, содержащего корень) за n шагов. В случае МД размер "вилки" вообще оказывается детерминированным: (b-a)/2^n.


> > Коэффициенты матрицы А(100,100) представляют собой рациональные числа 1 000 000+t, где t- случайное рациональное число .....

> Вы упираете на рациональность чисел. А разве при численном решении в вычислительной системе могут быть другие числа?

Нет , не могут .


> Только иногда он сходится очень плохо.
> Например, функция:
> f(x) = 0.0001*x при x < 0
> f(x) = 1000*x при x > 0

> Нужно найти корень в интервале (-1, 1). Ясно, что это x = 0. А вот прикиньте, сколько итераций потребуется, чтобы до него добраться методом хорд (хотя бы с точностью Δx = 0.01)

> Самый лучший способ - самый дубовый, метод дихотомии

На каждый пример найдется свой контрпример.
Возьмите функцию f(x) = 1000*x-1 и поищите методом половинного деления корень на интервале (0, 1). Когда надоест, примените метод хорд



>> Коэффициенты матрицы А(100,100) представляют собой рациональные числа 1 000 >000+t, где t- случайное рациональное число [0,1]. Возможно ли предсказуемое >решение таких СЛАУ ? Если да ,то какими методами ? Буду признателен за >возможный ответ.

Давайте поделим матрицу на 1000000, тогда задача выглядит красивее: обратить матрицу, элементы которой отличаются от 1 на малые случайные числа eps (eps=t/1000000).
Если эти дрбавки - нули, то определитель матрицы = 0. В общем случае, по видимому, определитель б. м. случайная величина N-1 порядка малости (N в данном случае = 100 - размер матрицы). Если это так, то элементы обратной матрицы - б. б. случайные числа порядка -1 (eps считается первого порядка малости).

Сильно некорректная задача, я бы сказал.


> > Только иногда он сходится очень плохо.
> > Например, функция:
> > f(x) = 0.0001*x при x < 0
> > f(x) = 1000*x при x > 0

> > Нужно найти корень в интервале (-1, 1). Ясно, что это x = 0. А вот прикиньте, сколько итераций потребуется, чтобы до него добраться методом хорд (хотя бы с точностью Δx = 0.01)

> > Самый лучший способ - самый дубовый, метод дихотомии

> На каждый пример найдется свой контрпример.
> Возьмите функцию f(x) = 1000*x-1 и поищите методом половинного деления корень на интервале (0, 1). Когда надоест, примените метод хорд

С точностью менее Δx = 0.01 за семь шагов непременно найду. Хуже, конечно, чем за один шаг, зато с гарантией


> С точностью менее Δx = 0.01 за семь шагов непременно найду. Хуже, конечно, чем за один шаг, зато с гарантией

С такой точностью - да, а с большей?

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


> >> Коэффициенты матрицы А(100,100) представляют собой рациональные числа 1 000 >000+t, где t- случайное рациональное число [0,1]. Возможно ли предсказуемое >решение таких СЛАУ ? Если да ,то какими методами ? Буду признателен за >возможный ответ.

> Давайте поделим матрицу на 1000000, тогда задача выглядит красивее: обратить матрицу, элементы которой отличаются от 1 на малые случайные числа eps (eps=t/1000000).

1+eps, возможно , красивее чем 1000 000+t . И этим "красивее" результат ограничивается.К сожалению.

> Если эти дрбавки - нули, то определитель матрицы = 0. В общем случае, по видимому, определитель б. м. случайная величина N-1 порядка малости (N в данном случае = 100 - размер матрицы). Если это так, то элементы обратной матрицы - б. б. случайные числа порядка -1 (eps считается первого порядка малости).

> Сильно некорректная задача, я бы сказал.
И при этом априорная информация о векторе-решении отсутствует.
Понизим планку - коэффициенты матрицы есть числа 1 000+t. Если примеры практического решения таких задач ?


> 1+eps, возможно , красивее чем 1000 000+t . И этим "красивее" результат ограничивается.К сожалению.

Ну а какой Вам нужен результат?

> И при этом априорная информация о векторе-решении отсутствует.
> Понизим планку - коэффициенты матрицы есть числа 1 000+t. Если примеры практического решения таких задач ?

Если понизить планку еще ниже, то Ваша задача будет выглядеть так: найти решение СЛАУ со случайной матрицей (поправте меня, если я ошибаюсь). Ну а тогда никаких специальных методов просто не может быть, так как Вам приходится решать СЛАУ общего положения.

Я считал, что для Вас принципиальна именно малость случайных добавок к матрице, но если нет... Тогда решайте ее обычными методами.


> > 1+eps, возможно , красивее чем 1000 000+t . И этим "красивее" результат ограничивается.К сожалению.

> Ну а какой Вам нужен результат?

> > И при этом априорная информация о векторе-решении отсутствует.
> > Понизим планку - коэффициенты матрицы есть числа 1 000+t. Если примеры практического решения таких задач ?

> Если понизить планку еще ниже, то Ваша задача будет выглядеть так: найти решение СЛАУ со случайной матрицей (поправте меня, если я ошибаюсь). Ну а тогда никаких специальных методов просто не может быть, так как Вам приходится решать СЛАУ общего положения.

> Я считал, что для Вас принципиальна именно малость случайных добавок к матрице, но если нет... Тогда решайте ее обычными методами.

Принципиально - практическое равенство всех коэффициентов матрицы.
Принципиально - очень большое число обусловленности ( не менее 10^10)
Принципиален и вопрос : Кто -нибудь решает такие системы ?
Или в настоящее время решать такие СЛАУ невозможно ?


> Принципиально - практическое равенство всех коэффициентов матрицы.
> Принципиально - очень большое число обусловленности ( не менее 10^10)
> Принципиален и вопрос : Кто -нибудь решает такие системы ?
> Или в настоящее время решать такие СЛАУ невозможно ?

Хорошо, я подумаю... Но ответить смогу не раньше, чем через месяц (ухожу в отпуск). Пока!


> > Принципиально - практическое равенство всех коэффициентов матрицы.
> > Принципиально - очень большое число обусловленности ( не менее 10^10)
> > Принципиален и вопрос : Кто -нибудь решает такие системы ?
> > Или в настоящее время решать такие СЛАУ невозможно ?

> Хорошо, я подумаю... Но ответить смогу не раньше, чем через месяц (ухожу в отпуск). Пока!

Пока на месяц !


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

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


> > Что Вы вкладываете в термин «метод оказывается оптимальным»?

> Метод является оптимальным в смысле критерия, приведенного в п.1 - минимизация математического ожидания "вилки" (отрезка, содержащего корень) за n шагов. В случае МД размер "вилки" вообще оказывается детерминированным: (b-a)/2^n.


В моей практике приходилось иметь дело с функциями, вычисление каждого значения которых «дорого». Т.е. требует больших затрат ресурсов (объемов памяти, обращений к диску, времени вычислений), поэтому критерием качества программы поиска корня (я подчеркиваю программы, а не одного конкретного метода) я считаю суммарное число вычислений функции до получения корня с заданной точностью.



> > Метод является оптимальным в смысле критерия, приведенного в п.1 - минимизация математического ожидания "вилки" (отрезка, содержащего корень) за n шагов. В случае МД размер "вилки" вообще оказывается детерминированным: (b-a)/2^n.

>
> В моей практике приходилось иметь дело с функциями, вычисление каждого значения которых «дорого». Т.е. требует больших затрат ресурсов (объемов памяти, обращений к диску, времени вычислений), поэтому критерием качества программы поиска корня (я подчеркиваю программы, а не одного конкретного метода) я считаю суммарное число вычислений функции до получения корня с заданной точностью.

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


> > >Тоесть не Вейерштрасса, а Больцано-Коши.

> > >Непрерывность функции на интервале перемены знака является достаточным условием существования корня на этом интервале. Но не является необходимым.

> > >Желаю множество успехов!

> > Да, но в этом интервале может существовать куча корней, а метод половинного деления нам даст неизвестно какой из них. А мне нужен минимальный положительный.

> Советую Вам уяснить, что не существует метода поиска корня, пригодного для любого класса функций. Возвращаясь к аналогии с программой игры в шахматы, можно сказать, что на любую программу ВСЕГДА найдется более сильный игрок или программа эффективнее рассматриваемой.

> Разработка оптимальной программы поиска корня и анализ функции, для которой предполагается использовать программу, – две совершенно разные задачи.

> Например, такая функция F(x) на прямой.
> При нуле F(x) = -1.0; Во всех остальных точках F(x) = sin(1.0/x).
> Каков для такой функции минимальный положительный корень?

sin(1/x)=0
1/x = PI*K
x=1/(PI*K) - отсюда ясно, что последовательность стремится к нулю, но так как ноль нас не устраивает, то имеем открытый промежуток на котором НЕ СУЩЕСТВУЕТ минимального положительного числа. А я говорил, что ПУСТЬ ОНО ЕСТЬ. Так что в следующий раз подумайте получше, прежде чем примеры приводить. Да, я все никак не могу понять, ПРИЧЕМ ТУТ ШАХМАТЫ? Я не 5-ти лентий ребенок, чтобы мне все на ассоциативном типе мышления надо было объяснять.


> Для одномерного случая элементарно. Метод хорд. Смотри M.Я. Выгодский "Справочник по высшей математике" параграф 289. "Решение уравнений. Способ хорд." Там разжёвано.
> Единственно надо дойти до перемены знака от начала отрезка, двигайся шагами, заведомо меньшими, чем растояние между корнями. Как только возникнет перемена знака функции натравливай метод хорд. Хочешь следующий корень - двигайся дальше.

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


> > > >Тоесть не Вейерштрасса, а Больцано-Коши.

> > > >Непрерывность функции на интервале перемены знака является достаточным условием существования корня на этом интервале. Но не является необходимым.

> > > >Желаю множество успехов!

> > > Да, но в этом интервале может существовать куча корней, а метод половинного деления нам даст неизвестно какой из них. А мне нужен минимальный положительный.

> > Советую Вам уяснить, что не существует метода поиска корня, пригодного для любого класса функций. Возвращаясь к аналогии с программой игры в шахматы, можно сказать, что на любую программу ВСЕГДА найдется более сильный игрок или программа эффективнее рассматриваемой.

> > Разработка оптимальной программы поиска корня и анализ функции, для которой предполагается использовать программу, – две совершенно разные задачи.

> > Например, такая функция F(x) на прямой.
> > При нуле F(x) = -1.0; Во всех остальных точках F(x) = sin(1.0/x).
> > Каков для такой функции минимальный положительный корень?

> sin(1/x)=0
> 1/x = PI*K
> x=1/(PI*K) - отсюда ясно, что последовательность стремится к нулю, но так как ноль нас не устраивает, то имеем открытый промежуток на котором НЕ СУЩЕСТВУЕТ минимального положительного числа. А я говорил, что ПУСТЬ ОНО ЕСТЬ. Так что в следующий раз подумайте получше, прежде чем примеры приводить. Да, я все никак не могу понять, ПРИЧЕМ ТУТ ШАХМАТЫ? Я не 5-ти лентий ребенок, чтобы мне все на ассоциативном типе мышления надо было объяснять.

Как говорит «на физике» один уважаемый участник форума: «Обисняю».
В любой конкретной вычислительной системе (читай РС) не существуют «открытых промежутков».
Числа только рациональные.
И для приведенного примера существует минимальный положительный корень. Во как!
Ощущается отсутствие опыта конкретной работы с подобными задачами.

С пожеланиями дальнейших творческих успехов
И, пожалуйста, не забывайте, уважаемый, что вы решаете задачу численно, а не аналитически.
Это две большие разницы.
На любой конкретной вычислительной системе определена так называемая присущая ей «разрядная сетка».
А причем здесь шахматы, надеюсь, со временем поймете.


Сообщение №8388 от Ana , 04 августа 2003 г.
> Возвращаясь к аналогии с программой игры в шахматы, можно сказать, что на любую программу ВСЕГДА найдется более сильный игрок или программа эффективнее рассматриваемой.

Ana, это Ваше утверждение неверно. Подумайте! Слово "ВСЕГДА" там лишнее.
Упростим задачу. Пусть программа должна решать задачу:
найти мат в два хода. Если она ее решает, то "сильнее" программы
(или игрока) уже нет.

Можно рассуждать и так. Человечество за время своего существования
сможет создать кончное число шахматных программ.
Среди них можно выбрать самую эффективную.
(Не спрашивайте меня о критерии эффективности. Его дожны были определить
Вы, когда делали свое утверждение.)
>
> А причем здесь шахматы, надеюсь, со временем поймете.

Похоже, что не при чем.


> >Возвращаясь к аналогии с программой игры в шахматы, можно сказать, что на любую программу ВСЕГДА найдется более сильный игрок или программа эффективнее рассматриваемой.

> Ana, это Ваше утверждение неверно. Подумайте!
Хорошо. Давайте подумаем.

> Слово "ВСЕГДА" там лишнее.
Нужны доказательства

> Упростим задачу. Пусть программа должна решать задачу:
> найти мат в два хода. Если она ее решает, то "сильнее" программы
> (или игрока) уже нет.
Это не программа игры в шахматы. Это программа перебора из очень ограниченного числа вариантов. Опровержением служить не может.

> Можно рассуждать и так. Человечество за время своего существования
> сможет создать конечное число шахматных программ.
> Среди них можно выбрать самую эффективную.
Это человечеством уже реализовано на данном этапе своего существования.

> (Не спрашивайте меня о критерии эффективности. Его должны были определить
> Вы, когда делали свое утверждение.)
А чего здесь определять. Наилучшая программа должна обыгрывать все остальные программы. (Чемпиона мира я рассматриваю как один из вариантов программы).
> >А причем здесь шахматы, надеюсь, со временем поймете.
> Похоже, что не при чем.

Если Вы докажете (а это ТА ЕЩЕ ЗАДАЧКА), что за белых существует программа (стратегия), обеспечивающая гарантированный выигрыш (или хотя бы гарантированное сведение партии вничью), Вы прославите свое имя.


> > >Возвращаясь к аналогии с программой игры в шахматы, можно сказать, что на любую программу ВСЕГДА найдется более сильный игрок или программа эффективнее рассматриваемой.

> > Ana, это Ваше утверждение неверно. Подумайте!
> Хорошо. Давайте подумаем.

> > Слово "ВСЕГДА" там лишнее.
> Нужны доказательства

Вы сделали общее утверждение в 8388 без доказательства.
"на любую программу ВСЕГДА найдется более сильный игрок или программа эффективнее рассматриваемой."
Но хотите чтобы я доказал частное:"Возможно, будет создана более эффективная
программа, чем самая сильная из существующих,(а возможно и нет)" ?

Давайте доказывать в порядке поступления утверждений.
Сначала Вы :-).

> > Упростим задачу. Пусть программа должна решать задачу:
> > найти мат в два хода. Если она ее решает, то "сильнее" программы
> > (или игрока) уже нет.
> Это не программа игры в шахматы. Это программа перебора из очень ограниченного числа вариантов. Опровержением служить не может.

1.Опять Вы делаете поспешное утверждение про программу.
Возможно, именно, самую сильную (на сегодня) программу использовали для
решения двухходовки.
2.Шахматная программа - это тоже перебор из ограниченного числа вариантов.
3.Я привел этот пример (а не опровержение) чтобы показать, что
есть задачи, для которых уже нет более эффективных программ,
а они находятся на одном уровне.(Точнее двух: способных решить и нет).
Вы не знаете, к какой категории относятся шахматы, а утверждаете 8388.

> > Можно рассуждать и так. Человечество за время своего существования
> > сможет создать конечное число шахматных программ.
> > Среди них можно выбрать самую эффективную.

А это, на мой взгляд, и говорит об ошибочности 8388.

> Если Вы докажете (а это ТА ЕЩЕ ЗАДАЧКА), что за белых существует программа (стратегия), обеспечивающая гарантированный выигрыш (или хотя бы гарантированное сведение партии вничью), Вы прославите свое имя.

Это очевидно и без доказательства. (Число вариантов конечно).
Но прямого отношения к вопросу не имеет.

Повторю:
Давайте доказывать в порядке поступления утверждений.
Сначала Вы 8388.


Уважаемый Гусев!
Мы имеем (так уж получилось) две «проблемы» для обсуждения:
(1) Уместно ли сравнение программы поиска корня с программой игры в шахматы.
(2) И собственно проблемы программы игры в шахматы.

Второй из этих проблем я даже и не собиралась касаться.

По поводу поиска корня дело было так.
Каждый из участников обсуждения предлагал-хвалил тот или иной конкретный метод.

Так вот. Нашему общему и юному другу я привела аналогию:
«Использовать в программе поиска корня только один из названных методов, - это то же самое, что в шахматах с самого начала партии играть только одним конем» .
Что не так?


> > Если Вы докажете (а это ТА ЕЩЕ ЗАДАЧКА), что за белых существует программа (стратегия), обеспечивающая гарантированный выигрыш (или хотя бы гарантированное сведение партии вничью), Вы прославите свое имя.

> Это очевидно и без доказательства. (Число вариантов конечно).

Не очевидно. Возможно, что две "оптимально" играющие программы будут бесконечно ходить по очень длинному циклу.


>
Нашему общему и юному другу я привела аналогию:

> «Использовать в программе поиска корня только один из названных методов, - это то же самое, что в шахматах с самого начала партии играть только одним конем» .
> Что не так?

Эта аналогия не вполне удачная:
Одним конем выиграть нельзя.
А одним методом часто решить задачу можно.

(Создать универсальную программу, использующую несколько методов, которая
сама выбирает лучший, очень трудно.
Вы сильно усложняете задачу для Вашего друга :-)


> > > Если Вы докажете (а это ТА ЕЩЕ ЗАДАЧКА), что за белых существует программа (стратегия), обеспечивающая гарантированный выигрыш (или хотя бы гарантированное сведение партии вничью), Вы прославите свое имя.

> > Это очевидно и без доказательства. (Число вариантов конечно).

> Не очевидно. Возможно, что две "оптимально" играющие программы будут бесконечно ходить по очень длинному циклу.

Ну и что?
1.В правила шахматных соревнований входит контроль времени
и присуждение ничьей.
2.Сомневаюсь, что такие программы являются оптимальными.
Умная программа, обнаружив повторение позиции или
предложит ничью, или изберет другой вариант.


И еще есть правило, про которое сначала забыл.
Троекратное повторение позиции - ничья.


> Создать универсальную программу, использующую несколько методов, которая
> сама выбирает лучший, очень трудно.


Уважаемый Гусев!
В нашей жизни всё сейчас «трудно» и «нужно быстро».
Вы отделываетесь короткими замечаниями, содержащие лексемы типа «Очень трудно», «Часто», а от меня желаете получить четкие доказательства.
Из последней (см. выше) Вашей цитаты вытекает, что Вы так и не уловили смысл проводимой мною аналогии между программами поиска корня и шахмат.

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

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

Если анализ показывает, что «Ньютон не сработает», делаем один-два хода (чаще всего получается только один) менее эффективным методом, но так, чтобы создать благоприятные условия для возврата на метод Ньютона. И т.д. Такова суть «интеллекта» алгоритма.


> > Создать универсальную программу, использующую несколько методов, которая
> > сама выбирает лучший, очень трудно.

>
> Уважаемый Гусев!
> В нашей жизни всё сейчас «трудно» и «нужно быстро».

Вы опять не точны. Не все, а многое.
Но бывают иногда и праздники.:-)

> Вы отделываетесь короткими замечаниями, содержащие лексемы типа «Очень трудно», «Часто»,

А я обязан что-то еще ?
Вероятно, я плохо знаю свои обязанности. Напомните их, пожалуйста.

> а от меня желаете получить четкие доказательства.

Только в ответ на Ваше аналогичное требование.


> Из последней (см. выше) Вашей цитаты вытекает, что Вы так и не уловили смысл проводимой мною аналогии между программами поиска корня и шахмат.

Я так не думаю. Но Бог Вам судья.

> Попытаюсь уточнить.
> Программа поиска корня многошаговая (как и шахматная).
> Я, например, поступила так.
> Приняла, что самый лучший метод, - это метод Ньютона (модифицированный), за основной. (Модификация по части численного вычисления производной, - в итоге в процессе работы программы вычисляются только значения функции без всяких производных).

Вы уверены, что он лучший ? Почему Вы так думаете ?

> Программа на каждом шаге стремится отработать именно этим (ферзем), наиболее эффективным методом.

Похоже моя критика воспринята. От коня перешли к ферзю :-)

> В загашнике всего две фигуры, - два метода, - хорд и деления попалам (как по научному говорит епрос – дихотомии)

Вот видите, предлагали играть всеми фигурами, а играете только тремя.

> Если анализ показывает, что «Ньютон не сработает», делаем один-два хода (чаще всего получается только один) менее эффективным методом, но так, чтобы создать благоприятные условия для возврата на метод Ньютона. И т.д. Такова суть «интеллекта» алгоритма.

Вы молодец !
Но почему Вы не опубликовали Вашу программу для Вашего друга (и других)?
Хотите, чтобы он повторил Ваш трудовой подвиг ?

P.S. Ana, не обижайтесь !
Вы любите точность (чтобы другие выражались точно). А я хотел показать,
что даже Вам это удается не всегда. Не судите строго.


> >Если анализ показывает, что «Ньютон не сработает», делаем один-два хода (чаще всего получается только один) менее эффективным методом, но так, чтобы создать благоприятные условия для возврата на метод Ньютона. И т.д. Такова суть «интеллекта» алгоритма.

> Вы молодец !
Спасибо!

> Но почему Вы не опубликовали Вашу программу для Вашего друга (и других)?
А Вы читали заявление нашего общего друга
в сообщении №8345 от Denis , 29 июля 2003 г. 17:04:
Напомню.

В ответ на №8344: Re: Есть один численный метод. от Ana , 29 июля 2003 г.:
«Все это замечательно, но может быть я буду решать, какой метод мне подходит, а какой нет?»
Конец цитаты нашего общего юного друга.

Вот так!

> Хотите, чтобы он повторил Ваш трудовой подвиг ?
Ну, про подвиг Вы преувеличили!

> P.S. Ana, не обижайтесь !
> Вы любите точность
Издержки полученного мною образования

> (чтобы другие выражались точно).
Вот здесь Вы не правы.
Высказанное я часто понимаю в том смысле, как это заложено в тексте. Поэтому (как Вы говорите часто или иногда) возникают трудности.

> А я хотел показать,
> что даже Вам это удается не всегда.
Если бы Вам это удалось, я была бы Вам весьма признательна.
Но для меня так и остались непонятными Ваши аргументы.

> Не судите строго.
Чего уж чего, но этого у меня в характере нет. КЛЯНУСЬ.
Прошу Вас на меня тоже не обижаться.

С глубоким уважением ==Анастасия==


> > Не очевидно. Возможно, что две "оптимально" играющие программы будут бесконечно ходить по очень длинному циклу.

> Ну и что?
> 1.В правила шахматных соревнований входит контроль времени
> и присуждение ничьей.

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

Правила про троекратное повторение позиции - это уже более существенно. Ясно, что за конечное количество ходов игроки в него упрутся (если игра не закончится раньше).

Следует ли из этого, что белые могут гарантированно не проиграть?

> 2.Сомневаюсь, что такие программы являются оптимальными.
> Умная программа, обнаружив повторение позиции или
> предложит ничью, или изберет другой вариант.

Оптимально играющая программа не предложит ничью до тех пор, пока у нее есть возможность выиграть.

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



> Следует ли из этого, что белые могут гарантированно не проиграть?

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

> > 2.Сомневаюсь, что такие программы являются оптимальными.
> > Умная программа, обнаружив повторение позиции или
> > предложит ничью, или изберет другой вариант.

> Оптимально играющая программа не предложит ничью до тех пор, пока у нее есть возможность выиграть.

Так ее нет, если позиция повторилась, а лучшего варианта не видно.
А рассчитывать на сбой чужой ЭВМ ? А если своя собъется ?
Гроссмейстеры, обычно, так не делают и предлагают ничью.
Это проявление уважения к противнику.

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

Мы теорию игр здесь не рассматривали.
Закончим про шахматы, пока нас не прогнали ?


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

Почему Вы заговорили про теорию игр?
Может быть, я прозевало то место, где это появилось впервые?.

В большом количестве экстремальных задач, которые мне встречаются, я пытаюсь придерживаться так называемого «принципа гарантированного успеха».

Если применить это к задаче программирования шахмат, то оптимальная программа должна создаваться, исходя из следующей концепции.

Какой бы ход она (моя программа) не сделала, противник ЗНАЕТ заранее, что она сделает этот ход.
И так на глубину любого количества ходов противная сторона знает, как среагирует «моя» программа на ходы противника.

И вот, если я знаю, что «противник» за меня все знает наперед, и в этих условиях найду выигрывающую стратегию игры (короче говоря программу), то такая программа доставит мне гарантированный успех, не зависимо от «тщетных» усилий противной стороны.

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

Вроде бы это не имеет никакого отношения к теории игр.


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

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

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

> Мы теорию игр здесь не рассматривали.

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


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

> Почему Вы заговорили про теорию игр?
> Может быть, я прозевало то место, где это появилось впервые?.

> В большом количестве экстремальных задач, которые мне встречаются, я пытаюсь придерживаться так называемого «принципа гарантированного успеха».

> Если применить это к задаче программирования шахмат, то оптимальная программа должна создаваться, исходя из следующей концепции.

> Какой бы ход она (моя программа) не сделала, противник ЗНАЕТ заранее, что она сделает этот ход.
> И так на глубину любого количества ходов противная сторона знает, как среагирует «моя» программа на ходы противника.

> И вот, если я знаю, что «противник» за меня все знает наперед, и в этих условиях найду выигрывающую стратегию игры (короче говоря программу), то такая программа доставит мне гарантированный успех, не зависимо от «тщетных» усилий противной стороны.

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

> Вроде бы это не имеет никакого отношения к теории игр.

То, о чем Вы пишете - и есть вариант постановки задачи теории игр с полной информацией. В общем случае информация о поведении противника может быть ограниченной (что, кстати, и имеет место в реальных шахматах). Обычно рассматривается поведение так называемых "рациональных" игроков - это когда игрок всегда выбирает наиболее выигрышную стратегию с точки зрения заданной для него платежной функции. Например, в шахматах возможны три исхода: выигрыш, ничья и проигрыш. Рациональный игрок всегда выберет стратегию, которая ведет к выигрышу или по крайней мере не к проигрышу, при условии, что его противник тоже играет рационально и он знает, что первый игрок тоже играет рационально и т.д.

Некоторые задачи теории игр решаются. Про шахматы - вроде пока не решаются. Так что реальные шахматные программы пишутся на основании совсем других принципов.


А русскоязычного сайта нет? А то по английски совсем ничего не понятно да еще и куча баннеров.


Кстати кроме метода Ньютона, Ньютона-Рафсона нет других чтобы не разбегались?


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


На физическом форуме обсуждается вопрос соударения трех шаров, которые описываются следующими уравнениями.

m a2 + n b2 = m x2 + n y2 + M z2 (1)
m a + n b = m x + n y + M z (2)

(b2- b в квадрате )

m, n, M – массы левого, правого и центрального шаров соответственно.
а, b –скорости до удара левого и правого шаров соответственно

x, y, z –неизвестные скорости после удара левого, правого и центрального шаров соответственно, которые требуется найти, решив систему уравнений.

http://physics.nad.ru/rusboard/messages/26408.html

ПОМОГИТЕ С ВОПРОСОМ:

1. Решаема ли такая система уравнений?
2. Если да, то какой оптимальный метод для её решения?

СПАСИБО.



> На физическом форуме обсуждается вопрос соударения трех шаров, которые описываются следующими уравнениями.

> m a2 + n b2 = m x2 + n y2 + M z2 (1)
> m a + n b = m x + n y + M z (2)

> (b2- b в квадрате )

> m, n, M – массы левого, правого и центрального шаров соответственно.
> а, b –скорости до удара левого и правого шаров соответственно

> x, y, z –неизвестные скорости после удара левого, правого и центрального шаров соответственно, которые требуется найти, решив систему уравнений.

> http://physics.nad.ru/rusboard/messages/26408.html

> ПОМОГИТЕ С ВОПРОСОМ:

> 1. Решаема ли такая система уравнений?
> 2. Если да, то какой оптимальный метод для её решения?

Введем новые координаты:

X = (√m)x, Y = (√n)y, Z = (√M)z

Тогда уравнения перепишутся:

m a2 + n b2 = X2 + Y2 + Z2 (3)
m a + n b = (√m) X + (√n) Y + (√M) Z (4)

Уравнение (3) - это уравнение сферич. поверхности, а (4) - прямой. Если прямая пересекает сферу, то есть два решения; если касается - то одно. Если они не пересекаются, то решения не существует.
Решить можете численно, или, приближенно, оценить графически.


> m a2 + n b2 = X2 + Y2 + Z2 (3)
> m a + n b = (√m) X + (√n) Y + (√M) Z (4)

> Уравнение (3) - это уравнение сферич. поверхности, а (4) - прямой. Если прямая пересекает сферу, то есть два решения; если касается - то одно. Если они не пересекаются, то решения не существует.
> Решить можете численно, или, приближенно, оценить графически.

Кстати, аналитически эта сиситема тоже решается. Просто нужно немного повозиться:)


> > На физическом форуме обсуждается вопрос соударения трех шаров, которые описываются следующими уравнениями.

> > m a2 + n b2 = m x2 + n y2 + M z2 (1)
> > m a + n b = m x + n y + M z (2)

> > (b2- b в квадрате )

> > m, n, M – массы левого, правого и центрального шаров соответственно.
> > а, b –скорости до удара левого и правого шаров соответственно

> > x, y, z –неизвестные скорости после удара левого, правого и центрального шаров соответственно, которые требуется найти, решив систему уравнений.

> > http://physics.nad.ru/rusboard/messages/26408.html

> > ПОМОГИТЕ С ВОПРОСОМ:

> > 1. Решаема ли такая система уравнений?
> > 2. Если да, то какой оптимальный метод для её решения?

> Введем новые координаты:

> X = (√m)x, Y = (√n)y, Z = (√M)z

> Тогда уравнения перепишутся:

> m a2 + n b2 = X2 + Y2 + Z2 (3)
> m a + n b = (√m) X + (√n) Y + (√M) Z (4)

> Уравнение (3) - это уравнение сферич. поверхности, а (4) - прямой. Если прямая пересекает сферу, то есть два решения; если касается - то одно. Если они не пересекаются, то решения не существует.
> Решить можете численно, или, приближенно, оценить графически.
(4) - уравнение плоскости (одно уравнение, три переменные).


> > m a2 + n b2 = X2 + Y2 + Z2 (3)
> > m a + n b = (√m) X + (√n) Y + (√M) Z (4)

> > Уравнение (3) - это уравнение сферич. поверхности, а (4) - прямой. Если прямая пересекает сферу, то есть два решения; если касается - то одно. Если они не пересекаются, то решения не существует.
> > Решить можете численно, или, приближенно, оценить графически.

> (4) - уравнение плоскости (одно уравнение, три переменные).

Да, действительно (4) - уравнение плоскости, а не прямой. Аналогия с 2D здесь не проходит. В связи со сказанным решение изменится так: Если плоскость пересекает сферу, то все точки, принадлежащие окружности пересечения, есть решения системы; если касается - то есть только одно решение. Если они не пересекаются, то решения не существует.


МКЭ
Теория линейных цепей в электротехнике
Конечно сопромат
Сплайны. Вообще апроксимация функций.
Решение краевых задач для обыкновенных диф. ур.
Решение систем нелинейных уравнений.
Нелинейное программирование.
и т.д. и т.п.



Система кубических ур-ий
ноября 2003 г. 03:09
есть сис-ма:
a*x^3+b*x^2+c^x+d*y^3+e*y^2+f*y+g=0
A*x^3+B*x^2+C^x+D*y^3+E*y^2+F*y+G=0
нужен какой-нибудь алгоритм для её решения....не знаете ли где можно поискать?


--------------------------------------------------------------------------------
Re: Система кубических ур-ий
RElf
23 ноября 09:29
> есть сис-ма:
> a*x^3+b*x^2+c^x+d*y^3+e*y^2+f*y+g=0
> A*x^3+B*x^2+C^x+D*y^3+E*y^2+F*y+G=0
> нужен какой-нибудь алгоритм для её решения....не знаете ли где можно поискать?
Посмотрите ссылочку Grobner Bases(http://www.geocities.com/CapeCanaveral/Hall/3131/)
и особенно тему "SOLVING SYSTEMS"



Подскажите способ нахождения кратных корней многочлена
на пример: 9x^4 - 21x^3 - 4x^2 - 5x + 25



> Подскажите способ нахождения кратных корней многочлена
> на пример: 9x^4 - 21x^3 - 4x^2 - 5x + 25

Найти НОД многочлена со своей производной. все корни этого НОД суть кратные исходного корни многочлена.


Разностное уравнение с вырожденной матрицей при x(k+1)

Предположим, что S-некотороя матрица размерности mxn ранга p. Как решить такое разностное уравнение:
Sx(k+1)=A(k)x(k)+f(k),x(0)=x_0
Иначе говоря - как привести его к эквивалентному уравнению, но уже без матрицы при x(k+1)?
03 сентября 2004 г. 19:27:


народ , SOS ! нужно срочно решить систему ур-ий ... методом Гаусса , будь он неладен ...

x1+x2+4x3+4x4+9x5+9=0
2x1+2x2+17x3+17x4+82x5+146=0
2x1+3x3-x4+4x5+10=0
x2+4x3+12x4+27x5+26=0
x1+2x2+2x3+10x4-37=0

заранее спасибо ...
22 сентября 2004 г. 15:38:


> Кстати кроме метода Ньютона, Ньютона-Рафсона нет других чтобы не разбегались?
обобщенный метод секущих


Добрый день/вечер. Мне очень нужен алгоритм решения системы 5 уравнений 4-ой степени на Delphi, помогите, чем можите. Заранее большое спасибо.taysin@mail.ru


> Добрый день/вечер. Мне очень нужен алгоритм решения системы 5 уравнений 4-ой степени на Delphi, помогите, чем можите. Заранее большое спасибо.taysin@mail.ru

Численный? Кроме метода Ньютона ничего умного в голову не приходит.


Добрый день!

Пожалуйста, посоветуйте, какой численный метод лучше выбрать для решения уравнения вида:

F(x) = a0 + a1*x + a2*x^2 + a3*ln|x + a| = 0

Известно, что:
1) x>=0
2) 0 < a3 < 1
3) Если x0 - корень уравнения F(x) = 0, то F(x) > 0 в любой точке x < x0 и F(x) < 0 в любой точке x > x0.

Каковы условия существования корня этого уравнения? Каковы условия сходимости предложенных вами методов?

Заранее спасибо,
Gwynn


Имеется уравнение вида:

D1 * Exp(A1 + B1/X + C1 * LnX) + D2 * Exp(A2 + B2/X + C2 * LnX) = 1

(A, B, C, D - постоянные коэффициенты).

Нет ли аналитического способа его решения?


Мужики помогите пожалуйста решить систему уравнений методом Гаусса. Сам я учусь на зочном, для допуска к зачёту дали контрольную работу, в ней как раз вот эта вот система. На установочной сессии почитали совсем немного о матрицах (определения и т.д.) и показали как решать системы с тремя неизвестными. Над этой системой бился-бился, да что то ни хрена не выходит у меня её решить. Буду очень благодарен, если кто–нибудь из вас напишет подробное решение этой системы.

X1 + X2 - X3 + X4 = 1
2X2 + X3 – X4 = 0
2X1 – 3X3 + 3X4 = -1
X1 + 3X2 = 1
23 ноября 2006 г. 13:44:



В отличие от матричного метода и метода Крамера, метод Гаусса может быть применен к системам линейных уравнений с произвольным числом уравнений и неизвестных. Суть метода заключается в последовательном исключении неизвестных.
у тебя маткад есть? (tckb tcnm gh
7oup@mail.ru
Составим расширенную матрицу системы:
1 1 1 1
2 1 -1 0
2 -3 1 -1
1 3 0 1


Далее смысл заключается в том чтобы получить треугольную матрицу (в смысле получить как можно больше нулей в матрице та как каждый ноль избавляет нас от какой-то переменной. Для получения нулей используем элементарные преобразования, а потом опять возвращаемся к системе, но уже без лишних переменных и решаем эту систему как решали в школе (выражаем из одной переменной другую и подставляем ее в одно из уравнений системы и т.д) – метод гауса.
если не черта не понял пришли письмо на выше указанное мыло я тебе пришлю решение на следующей день, а может раньше (как мыло посмотрю)
DOS...


Здравствуйте.
Помогите сориентироваться в СЛАУ. Есть следующее уравнение (A1+A2)x=b котоую надо решить. Проблема в том, что можно решить его лишь по отдельности, т.к. матрицу A1+A2 сформировать (и обратить) невозможно из-за ее размера. Решение по отдельности подразумевает возможность вычислить два вектора x1=A1-1b1 и x2=A2-1b2, где b=b1+b2. Можно ли с такими исходными данными решить перове уравнение (и если да то как)?
Спасибо.
14 декабря 2006 г. 13:23
--------------------------------------------------------------------------------

Re: Решение суммы СЛАУ bot 14 декабря 16:46
В ответ на: Решение суммы СЛАУ от ghost_in_machine , 14 декабря 2006 г.:
А зачем раскладывать матрицу в сумму?
Чем Вам не понравились стандартные гауссовы исключения?
--------------------------------------------------------------------------------

Re: Решение суммы СЛАУ ghost_in_machine 14 декабря 17:21
В ответ на Re: Решение суммы СЛАУ от bot , 14 декабря 2006 г.:
Надо найти экстремум некой функции очень большого числа переменных. Особенность задачи в том, что можно сразу отделить слабо и сильно связанные переменные. При этом квазиньютоновские методы работаю до относительно большого градиента. Предположительно из-за низкой точности оценки сильно связанных переменных и завышенной оценки слабо связанных. Потому есть идея разбить матрицу вторых производных на две – сильно и слабо связанные. Первую вычислить методами анализа разреженных матриц с точным вычислением всех вторых производных, а вторую оценить квазиньютоновским методом. Осталась одна проблема - объединить два решения в одно.



Задача из курсовой работы для студента-двоечника инженерной специальности: написать программу для численного дифференцирования заданной неявно функции.

Никак не могу понять что простого можно запрограммировать на эту тему.
В учебниках численных методов для дифференцирования неявных функций не нашел.
Может придется численно решать уравнение в 2 точках x и x+dx и вычислять dy/dx?
Есть ли более оригинальный метод?


Решить Симплекс-методом (медом искусственногобазиса), составить двойственную задачу, с проверкой.

f(x)= c1x1+c2x2+c3x3+c4x4

a11x1+a12x2+a13x3+a14x4≥b1
a21x1+a22x2+a23x3+a24x4≤b2
a31x1+a32x2+a33x3+a34x4=b3

xi≥0 (i=от1 до4)

a11=2 a12=1 a13=4 a14=3
a21=-1 a22=1 a23=-1 a24=-2
a31=1 a32=-1 a33=3 a34=5

c1=-2 c2=0 c3=1 c4=5

b1=98 b2=22 b3=11


Есть следующая блочная матрица:
|10...032|
|01...424|
|.................|
|00...420|
|60..671|
|14..678|
Вид этой блочной матрицы M=
|E O|
|K P|.
Необходимо из вышенаписанной блочной матрицы выделить матрицы K и затем с ней работать(преобразовывать и т.д.).
Но матрица K имеет вид
|...........|
|...420|
|..671|
|..678|.
Что делать дальше при преобразованиях с этими многоточиями? Или так матрицу K нельзя было выделять таким образом? Можно ли переставлять строки/столбцы с этими многоточиями?


Есть следующая блочная матрица:
|10...032|
|01...424|
|.................|
|00...420|
|60..671|
|14..678|
Вид этой блочной матрицы M=
|E O|
|K P|.
Необходимо из вышенаписанной блочной матрицы выделить матрицы K и затем с ней работать(преобразовывать и т.д.).
Но матрица K имеет вид
|...........|
|...420|
|..671|
|..678|.
Что делать дальше при преобразованиях с этими многоточиями? Или так матрицу K нельзя было выделять таким образом? Можно ли переставлять строки/столбцы с этими многоточиями?


Матрицы, между прочим, не считают! Матрица - это заданная таблица чисел - квадратная или прямоугольная. В зависимости от задачи матрицу подвергают некоторым преобразованиям, но при каждом таком преобразовании получается уже ДРУГАЯ матрица. Из Вашего сообщения не видно, какая задача, связанная с матрицами, стоит перед Вами, поэтому никаких догадок о допустимых в Вашем случаях преобразованиях строить нельзя.


Простите за некорректность. Задача стоит посчитать обратную матрицу.


> Задача стоит посчитать обратную матрицу.
Насколько можно понять матрица имеет блочно-треугольный вид .
Обратная матрица в этом случае имеет такой же вид .

Перемножив их и приравняв к единичной матрице E, получим .

Отсюда .


Физика в анимациях - Купить диск - Тесты по физике - Графики on-line

Реклама: 192.168.1.1, 54mbps
Rambler's Top100