Нелинейные уравнения.

Сообщение №9430 от 30 ноября 2003 г. 16:31
Тема: Нелинейные уравнения.


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

tgx-2ctgx+1=0
30 ноября 2003 г. 14:20

--------------------------------------------------------------------------------

Re: помогите решить уравнение
Маграт
> tgx-2ctgx+1=0
Представим ctg(x) как 1/tg(x), а затем заменим tg(x) на t. Получим:

t-2/(t)+1=0, t не равно 0 |t
t^2-2+t=0
t^2+t-2=0
Потом находим дискриминант, затем t, а потом и х.
30 ноября 14:44



Привет всем! Кто может дать методический совет - с чего (с каких источников) начать?
Заранее спасибо! Владимир
06 декабря 2003 г. 09:05:



Привет Всем!
Кто ни будь может помочь мне решить нелинейное уравнение любым численным методом x*2^x=1 . Помогите бедной, замученной студентке! С уважением , Аиша.
09 декабря 2003 г. 01:18
--------------------------------------------------------------------------------

Re: Нелинейное уравнение
RElf
> Кто ни будь может помочь мне решить нелинейное уравнение любым численным методом x*2^x=1 . Помогите бедной, замученной студентке! С уважением , Аиша.
Решением этого уравнения можно записать как

x = LambertW(ln(2))/ln(2),

где LambertW() - это W-функция Ламберта.

Численно мапл утверждает, что

> x := evalf(LambertW(ln(2))/ln(2));
x := .6411857444

О W-функции Ламберта можно прочитать в хелпе мапла или по ссылке:
09 декабря 03:20



Вот такой вопрос:

Существует функция f(x). f:R->R. Обладающая свойствами:
1. Непрерывна на R.
2. f не всегда дифференцируема на R, но точно не содержит изломов.
Т.е. если f'(x0) не определено, то f(x0) имеет тот же характер, что и g(x)=x^(1/3) в точке 0.
3. f(x) может иметь любое количество корней на R.
4. f'(x) может иметь любое количество корней на R.

Вот в чем задача:
Как численно найти минимальный положительный корень f(x), скажем с точностью epsilon?
Метод дихотомии не подходит в силу п.3, а метод Ньютона-Рафсона в силу п.4.
Существует ли более гибкий численный метод?

Заранее спасибо.
28 января 2004 г. 10:15:



> Вот такой вопрос:

> Существует функция f(x). f:R->R. Обладающая свойствами:
> 1. Непрерывна на R.
> 2. f не всегда дифференцируема на R, но точно не содержит изломов.
> Т.е. если f'(x0) не определено, то f(x0) имеет тот же характер, что и g(x)=x^(1/3) в точке 0.
> 3. f(x) может иметь любое количество корней на R.
> 4. f'(x) может иметь любое количество корней на R.

> Вот в чем задача:
> Как численно найти минимальный положительный корень f(x), скажем с точностью epsilon?
> Метод дихотомии не подходит в силу п.3, а метод Ньютона-Рафсона в силу п.4.
> Существует ли более гибкий численный метод?

> Заранее спасибо.
> 28 января 2004 г. 10:15:

Проблему, подобную этой, мы с Вами уже обсуждали.
Смотрите сообщение № 8332 в архиве.


> Проблему, подобную этой, мы с Вами уже обсуждали.
> Смотрите сообщение № 8332 в архиве.

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


> > Проблему, подобную этой, мы с Вами уже обсуждали.
> > Смотрите сообщение № 8332 в архиве.

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

Так Вы же сами сказали мне в сообщении №8345 от Denis , 29 июля 2003 г. 17:04 (это сообщение легко доступно, оно на форуме, а не в архиве), что:
«Все это замечательно, но, может быть, я буду решать, какой метод мне подходит, а какой нет?»

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


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

Я просил посоветовать метод, а не навязывать его мне.

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

На каком угодно, но данная задача решается мной на Visual C++ 2003. WindowsXP, если это поможет :-)

Все мне это надо для моделирования графики методом RayTracing. Если это поможет, могу рассказать, почему эта задача является камнем преткновения.

На самом деле, если Вы действительно хотите и можете помочь, мне было бы гораздо удобнее общаться мылом, так как у меня ОЧЕНЬ плохое соединение (0.5 кило в секудну), за которое я плачу 1$ в час. Так что сами понимаете... Вообщем, моё мыло MrMoidodir@mail.ru


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

Я просил посоветовать метод, а не навязывать его мне.

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

На каком угодно, но данная задача решается мной на Visual C++ 2003. WindowsXP, если это поможет :-)

Все мне это надо для моделирования графики методом RayTracing. Если это поможет, могу рассказать, почему эта задача является камнем преткновения.

На самом деле, если Вы действительно хотите и можете помочь, мне было бы гораздо удобнее общаться мылом, так как у меня ОЧЕНЬ плохое соединение (0.5 кило в секудну), за которое я плачу 1$ в час. Так что сами понимаете... Вообщем, моё мыло MrMoidodir@mail.ru


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

> Я просил посоветовать метод, а не навязывать его мне.

Как это по Интернету можно навязать???
Кстати, я помню, Вы говорил, что годиться любой метод, даже самый медленный.
Так чем Вас не устраивает самый «дубовый», самый медленный, но самый надежный метод деления пополам?


Простите, после бессонной ночи вместо имени мыло свое написал :-)


Итак, дорогая Ana, я все же решил сформулировать задачу полностью :-)

Существует функция F(x,y,z), непрерывная со своими частными производными.
Эта функция описывает поверхность по следующему правилу:
точка A принадлежит поверхности, если F(A)=0, и не принадлежит в противном случае.
Существует точка P и вектор V. F(P)!=0.
Задача: при каком минимальном положительном t, если такое существует, F(P+t*V)=0 ?
Как ее решаю я:
Введем функцию f(t) по правилу: f(t)=F(P+t*V).
По методу Ньютона-Рафсона численно решаем уравнение f(t)=0, взяв за начальное приближение t0=0.
Решения нет, если выполняется хотя бы одно условие:
1. t(n) < 0
2. ABS( t(n-2) - t(n-1) ) <= ABS( t(n-1) - t(n) )
3. df/dt (t(n)) = 0.

Вот мое решение. Проблемма в том, что моя прога говорит, что решения нет, когда оно все же существует.
Например, если F(x,y,z) это что-то вроде ( sin(x+z) - cos(x-z) ), P(0,2,0), V(0,-0.1,1), т.е. когда F
это что-то вроде волн на воде, точка P находится над волнами, а вектор V смотрит "вскользь" волнам,
чуть-чуть вниз. Если интересно, могу прислать картинку, на которой будут черные пиксели у горизонта
на этой самой водичке. В них-то и не удается режить уравнение, хотя решение существует.
Заранее попрошу не искать ошибки в самой программе.

Вот такие дела :-) Жду Ваших мыслей. Если не тяжело, то на мыло. MrMoidodir@mail.ru
Еще раз спасибо :-)

PS: Метод дихотомии не такой уж медленный, но не подходит, т.к. мы не знаем, на каком из корней он сойдется.


> Итак, дорогая Ana, я все же решил сформулировать задачу полностью :-)
Дорогой Денис, выражаю Вам благодарность за доверие. Думаю, что Вы поступили правильно.
Может кто - либо из участников форума подскажет, что - либо полезное.

> Существует функция F(x,y,z), непрерывная со своими частными производными.
> Эта функция описывает поверхность по следующему правилу:
> точка A принадлежит поверхности, если F(A)=0, и не принадлежит в противном случае.
> Существует точка P и вектор V. F(P)!=0.
> Задача: при каком минимальном положительном t, если такое существует, F(P+t*V)=0 ?

Пока я понимаю так. Из точки Р проводится луч: f(t) = P+t*V.
И необходимо найти пересечение этого луча с поверхностью F(x,y, z) = 0.

Может быть было бы полезным определить неявную функцию z = W(x,y),
соответствующую поверхности F(x,y,z) = 0.
Как по Вашему, не было бы это эквивалентной переформулировкой задачи?

А затем строить линии уровня функции z = W(x,y). По тому типу, как на картах рисуют линии одинакового уровня для гор. Но, может быть, я еще не достаточно «врубилась» в Вашу задачу.

> Как ее решаю я:
> Введем функцию f(t) по правилу: f(t)=F(P+t*V).
> По методу Ньютона-Рафсона численно решаем уравнение f(t)=0, взяв за начальное приближение t0=0.
> Решения нет, если выполняется хотя бы одно условие:
> 1. t(n) < 0
> 2. ABS( t(n-2) - t(n-1) ) <= ABS( t(n-1) - t(n) )
> 3. df/dt (t(n)) = 0.

Про условия не поняла.
Вроде бы Вам достаточно найти ближайший к корень f(t)=0. И всё.

> Вот мое решение. Проблема в том, что моя прога говорит, что решения нет, когда оно все же существует.
> Например, если F(x,y,z) это что-то вроде ( sin(x+z) - cos(x-z) ), P(0,2,0), V(0,-0.1,1), т.е. когда F
> это что-то вроде волн на воде, точка P находится над волнами, а вектор V смотрит "вскользь" волнам,
> чуть-чуть вниз. Если интересно, могу прислать картинку, на которой будут черные пиксели у горизонта
> на этой самой водичке. В них-то и не удается решить уравнение, хотя решение существует.
> Заранее попрошу не искать ошибки в самой программе.

> Вот такие дела :-) Жду Ваших мыслей.

Я Вас очень понимаю!
В том числе и из своего опыта решения подобных задач (намучилась вдоволь).
А задача это типовая практически для подавляющего количества прикладных задач или для случая, когда необходимо визуализировать и сделать ясным какие-то элементы теоретического характера.

Здесь присутствую две независимые задачи.
(1) Задача решения уравнения f(t) = P+t*V = 0. На интервале перемены знака, если такой интервал «пойман».
(2) Задача поиска интервала перемены знака.

Если для первой задачи может быть построен вполне «регулярный» с приемлемым быстродействием алгоритм её решения.
ТО вторая задача «безнадежна». Или вернее я бы сказала так.
Её можно решать, если известно, что между двумя последовательно расположенными корнями «расстояние» не менее eps.

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


Обо всем по порядку.

1. Неявную функцию я определить не могу, потому как далеко не все F(x,y,z)=0 можно выразить как z=W(x,y). Тривиальный пример - сфера. Вообще в моей проге F(x,y,z) может быть абсолютно любой, единственное условие - непрерывна со своими частными производными.

2. Те три условия, которые я пивел, это критерии, по которым можно определить, что на n-ой итерации метод Ньютона-Рафсона (он же метод касательных) не сходится к решению. У меня проблемма возникает во втором пункте. В мЕтоде говорится, что последовательность из разностей n-го и (n-1)-го значений t должна быть строго убывающей. Так вот, в некоторых случаях происходит следующее:
dt1=63.847
dt2=28.178
dt3=9.12
dt4=9.543 <- Вот тут метод говорит, что решения нет, но если на этом не остановиться, то возможно следующее:
dt5=8.492
dt6=1.23
dt7=0.000234 < eps. (dt_i = t_i - t_(i-1))
Возможно, можно как-то оценить, в каком случае fake типа dt4 не является признаком отсутствия решения.

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

Вообще, если Вам это действительно интересно, дайте свое мыло, я пришлю Вам картинки (зеркальные шары в воде с тенями, отражением, приломлением и т.д.), на которых все объекты задаются как раз этими самыми F(x,y,z)=0. Думаю, это будет более наглядно.

Если бы мне удалось решить эту проблемму, можно было бы сделать много красивых вещей :-)

А решать разачу прямым перебором с шагом eps ну ОЧЧЧЕНЬ не хочется :) Хотя, 2 года назад так и делал, и все работало как часы)) Вот только можно было успеть чай попить, пока одна картинка отрендерится)))


> Итак, дорогая Ana, я все же решил сформулировать задачу полностью :-)

> Существует функция F(x,y,z), непрерывная со своими частными производными.
> Эта функция описывает поверхность по следующему правилу:
> точка A принадлежит поверхности, если F(A)=0, и не принадлежит в противном случае.
> Существует точка P и вектор V. F(P)!=0.
> Задача: при каком минимальном положительном t, если такое существует, F(P+t*V)=0 ?

Как то на форуме задавалась задача:

"Есть набор прямых Li в трехмерном пространстве, каждая из которых задается точкой и вектором.
Надо найти точку M, являющуюся "центром сближения прямых". В частности, если все прямые пересекаются в одной точке, то эта точка и будет центром сближения.
В общем случае критерий такой:
Если R(Li, M) - это расстояние между точкой M и прямой Li, то сумма R(Li, M)
должна быть минимальной
R(L1, M) + .... + R(Ln, M) = min

Интуиция подсказывает, что решение в этой задаче - либо прямая (в случае если все прямые параллельны) либо единственная точка. И что эту точку можно найти аналитически и при этом точно."

Удивительно, что действительно нашлось аналитическое решение!



> Обо всем по порядку.

> 1. Неявную функцию я определить не могу, потому как далеко не все F(x,y,z)=0ожно выразить как z=W(x,y).

И не надо выражать.
Я подразумевала численное решение уравнений
F(x,y,Сn)=0, n = 1,2,....,N
На некотором прямоугольнике по x,y строите однопараметрическое семейство решений
Вашего уравнения F(x,y,z)=0

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

> Вообще в моей проге F(x,y,z) может быть абсолютно любой.
> ….,единственное условие - непрерывна со своими частными производными.

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

> 2.
Ну, об этом потом.

> А решать разачу прямым перебором с шагом eps ну ОЧЧЧЕНЬ не хочется :) Хотя, 2 года назад так и делал, и все работало как часы)) Вот только можно было успеть чай попить, пока одна картинка отрендерится)))

Ранее. В сообщении № 10566 Вы писали:
PS: Метод дихотомии не такой уж медленный, но не подходит, т.к. мы не знаем, на каком из корней он сойдется.
И у меня создалось впечатление, что Ваша проблема не в быстродействии алгоритма, а в способе «отделения» корней, т.е. в проблеме нахождения интервалов перемены знака.
Определитесь.


Модератору: У меня на посылке связь оборвалась, так что сообщение от "D" можно грохнуть.

> Я подразумевала численное решение уравнений
> F(x,y,Сn)=0, n = 1,2,....,N
> На некотором прямоугольнике по x,y строите однопараметрическое семейство решений
> Вашего уравнения F(x,y,z)=0

Но ведь всеравно все упирается в решение f(x)=0 :-(

> Ранее. В сообщении № 10566 Вы писали:
> PS: Метод дихотомии не такой уж медленный, но не подходит, т.к. мы не знаем, на каком из корней он сойдется.
> И у меня создалось впечатление, что Ваша проблема не в быстродействии алгоритма, а в способе <отделения> корней, т.е. в проблеме нахождения интервалов перемены знака.
> Определитесь.

Попробую...
Скажу вот что: у меня уравнение f(x)=0 решается для каждого пикселя несколько несятков, а то и сотен раз. А пикселей таких на картинке 1152*864... Многовато получается. Это еще не считая что для каждого пикселя происходит засчет освещения, текстурирование, и т.д. Поэтому я думаю, что если еще кроме численного решения f(x)=0 добавить решение задачи о поиске интервала перемены знака, все совсем умрет :-(
Что-то мне кажется, что надо пересмотреть всю мою реализацию метода RayTracing... Или ждать выхода Intel Pentium 5 :-)
Ладно, попробую поискать альтернативные ваианты...
Спасибо за поддержку :-)


кто-нибудь подкиньте какой-нибудь простенький алгоритм нахождения корней полинома,
если найдется исходник на С++ или Паскале, то вообще рад буду. Please!
22 февраля 2004 г. 01:16:


Кто может решить уравнение:
X^3-X*a^2-(c/(a*b^2))=0


> Кто может решить уравнение:
> X^3-X*a^2-(c/(a*b^2))=0

Методом итераций, на компе:
Xo=0
X1=Xo^3/a^2-c/(a^3*b^2)
X2=X2^3/..............
......................


> > Кто может решить уравнение:
> > X^3-X*a^2-(c/(a*b^2))=0

> Методом итераций, на компе:
> Xo=0
> X1=Xo^3/a^2-c/(a^3*b^2)
> X2=X2^3/..............
> ......................

Вообще, я имел ввиду найти решение методом Кардано.
Данное уравнение описывает все прямоугольные треугольники с площадью С
и имеет два комплексных X1,X2 и один натуральный X0 корни.
Но почему X0=0 ??? Такого не должно быть.



Вот решения этого уравнения:
X1=(a^2+c/(a*b^2


Математик Исагов из Наб. Челнов предлагает решить систему
уравнений:
X^3+a*X*Y^2=c
Y^3+b*Y*X^2=d
Сам он решил эту систему, когда учился в 8 классе, и утверждает, что на Земле
ещё не родился человек, который бы решил эту задачу.
ГРУБЫЙ ВЫЗОВ МЕХМАТУ! Кто ответит нахалу?
Подробности на сайте isagov.narod.ru


> Математик Исагов из Наб. Челнов предлагает решить систему
> уравнений:
> X^3+a*X*Y^2=c
> Y^3+b*Y*X^2=d
> Сам он решил эту систему, когда учился в 8 классе, и утверждает, что на Земле
> ещё не родился человек, который бы решил эту задачу.
> ГРУБЫЙ ВЫЗОВ МЕХМАТУ! Кто ответит нахалу?
> Подробности на сайте isagov.narod.ru


Ja reshil, kuda reshenie vqlozhitj? : )


А в чём дело, собственно? Надо x и y найти, что-ли? На слабо берёте?
Не местные мы, да и то знаем. Умножайте первое и второе уравнения на числа так, чтобы после сложения в правой части оказался ноль. Потом поделите на y^3, получите кубическое уравнение относительно дроби y/x. По формулам Кардано находите отношение y/x. Затем, используя какое-нибудь уравнение системы, добирае6тесь и до самих x и y.


> > > Кто может решить уравнение:
23x + 2sup>3x-1 + 2sup>3x-23(x-1)


> > > > Кто может решить уравнение:
> 23x + 23x-1 + 23x-2 + 2 3(x-1)= 120

Поправила.


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

Реклама:
Rambler's Top100