|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.03.2009, 17:31 | #1 |
Регистрация: 20.03.2009
Сообщений: 7
|
отделение корней методом Лангранжа
нужна программа для отделения корней уравнения вида
a0*x^n + a1*x^n-1 + .+an-1*x + an = 0 методом Лангранжа. Где а0, a1, an-1, a - коэффициенты при X. тем кто даст ссылку или тем, у кого есть програмный код, или же тем, кто ее напишет дам миллион долларов (шутка). Пойдет на любом языке, но желательно (Паскаль\Делфи\С++); спасибо наверное скажу заранее |
21.03.2009, 13:28 | #2 |
Регистрация: 20.03.2009
Сообщений: 7
|
ап теме
неужели никто не имеет никаких догадок? |
21.03.2009, 13:38 | #3 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 69
|
Честно говоря, самому интересно, но никогда не слышал о методе Лагранжа. Может, хоть ссылочку кинешь?
Silence is of great value...
|
22.03.2009, 01:10 | #4 |
Регистрация: 20.03.2009
Сообщений: 7
|
к сожалению, не знаю я ссылок
в общем вот составленный лично мною алгоритм действий: 1)записываем заданное уравнение; 2)находим коэффициенты при иксах: a0, a1..an-1, an; 3)находим b и K; где b - абсолютное за модулем значение отрицательного коэффициента стреди a; K - номер первого отрицательного коеффициента среди а; ___________________________________ __________________________ 4)находим верхнюю положительную границу R(в+) графика фунции по уравнению R(в+)=1+((b/a0)^1/K); ___________________________________ __________________________ 5)находим нижнюю положительную границу R(н+) графика фукции Для этого: - вместо ф-ции f1(x) подставляем x^n*f(1/x)=0 [ f1(x)=(x^n*f(1/x)=0) ] - находим коэффициенты a0, b, K из полученного уравнения; - подставляем их в уравнение R1, а имеено R1=1+((b/a0)^1/k); - наконец находим нижнюю положительную границу R(н+); R(н+)=1/R1; ___________________________________ __________________________ 6)Находим нижнюю отрицательную R(н-) границу графика: - вместо ф-ции f2(x) подставляем f(-x); [ f1(x)=f(-x) ] - находим коэффициенты a0, b, K из полученного уравнения; - подставляем их в уравнение R2, а имеено R2=1+((b/a0)^1/k); - наконец находим нижнюю отрицателную границу R(н-); R(н-)=-R2; ___________________________________ __________________________ 7)Находим верхнюю отрицательную R(в-) границу графика: - вместо ф-ции f3(x) подставляем x^n*f(-1/x)=0; [ f1(x)=x^n*f(-1/x)=0 ] - находим коэффициенты a0, b, K из полученного уравнения; - подставляем их в уравнение R3, а имеено R3=1+((b/a0)^1/k); - наконец находим верхнюю отрицательную границу R(в-); R(в-)=1/R3; ___________________________________ __________________________ 8) Находим промежутки: R(н+)<=x(+)<=R(в+); R(н-)<=x(-)<=R(в-); ___________________________________ __________________________ 9) Задаем шаг измения значения Х в пределах промежутков [как задать шаг точно не знаю, но можно попробовать с помощью уравнений: (R(в+)-R(н+))/n для промежутка на положительной части Х (х>0) (R(в-)-R(н-))/n для промежутка на отрицательной части Х (х<0)] ___________________________________ __________________________ 10) пошагово подставляем значение "Х" в заданное уравнение(в пределах промежутков) и проверяем соответствует ли знак промежутка значения Х в пределах одного шага и промежутка шага, стоящего за данным. (соответсвует ли знак Х в промежутке h со знаком значения Х промежутка шага h+1) Если не совпадает - значит в этом промежутке содержится один из корней уравнения (тоесть y(x)=0); ___________________________________ __________________________ 11)Проверяем совпают ли количество промежутков с корнями уравнения со значением n(наибольшая степень заданного уравнения) - совпадает: тогда выводим [a,b] этих промежутков(это будет искомое данной программы); - не совпадает(значит в одном промежутке два или больше корня): тогда делим значение шага на два(для того, чтоб уменьшить интервалы промежутков и точнее определить наличие корней в данном промежутке) Делим до тех пор, пока количество промежутков с отличными знаками не будет равнятся n (так как, по свойству такого типа уравнений, количество корней равняется значению наибильшего степеня оного уравнения); - как только совпадает - выводим промежутки на экран; ___________________________________ ___________________________ Вот вам суть метода Лангранжа; Возьмитесь пожалуйста за эту программу(программа первого курса не програмного факультета) Я сам паралельно пишу, но сроки поджимают, поэтому вынужден заручится поддержкой более образованных в этом вопросе людей. ___________________________________ ___________________________ и ещё: если не трудно, покажите кусок программы с помощью которого я смогу определить коэффициенты при Иксах и определить значения "b" и "К"; жду каких либо комментариев(лучше в виде самой программы). если есть предложения по отдельным кускам программы - буду признателен; если есть хотябы отдельные куски программы, которые можно переделать под мою - буду вдвойне принателен Последний раз редактировалось sat123; 22.03.2009 в 20:06. |
22.03.2009, 20:07 | #5 |
Регистрация: 20.03.2009
Сообщений: 7
|
подсобите пожалуйста
|
22.03.2009, 20:32 | #6 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 69
|
Уже третий час пытаюсь осилить этот метод. Не получается. Можешь подробнее объяснить каждый шаг алгоритма?
Silence is of great value...
|
22.03.2009, 20:34 | #7 |
Регистрация: 20.03.2009
Сообщений: 7
|
я уж и не знаю как подробнее, задавай вопросы, я буду отвечать
|
22.03.2009, 21:03 | #8 |
Новичок
Джуниор
Регистрация: 22.03.2009
Сообщений: 1
|
sat123 Вы случайно, не в Житомирском политехе ?)))
просто задание, копия моего, только у меня еще изолированые корни. (п.с. оставляйте аську в ЛС) (до четверга думаю сделаю, общими усилиями многих людей) По делу. Есть небольшие наработки. нужна помощь только в маленьком кусочке кода. Как сделать так, что б степень при каждом слагаемом падала на единицу, до тех пор, пока не будет нулевой степень ? (т.е. если n=5, то будет 6 слагаемых, с каждым слагаемым понижается степень на единицу) я так понимаю это будет цикл: for i:=n downto 0 do begin а дальше как ? что б яснее было Последний раз редактировалось Matuzalem; 22.03.2009 в 23:25. |
23.03.2009, 18:27 | #9 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 69
|
Вот и я...
Как я обещал, начну думать над вопросом.
И вопрос к автору (т.е. к sat123): реши, пожалуйста, уравнение x^2-2x+1 этим методом. Хочу вникнуть в его суть, так сказать, понять его хочется.
Silence is of great value...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решение уравнения методом деления отрезка пополам. Методом секущей. | Panda196 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 25.11.2008 09:06 |
отделение строк при передаче в serversocket... | prizrak1390 | Общие вопросы Delphi | 14 | 29.06.2008 21:13 |
Алгоритм уточнения корней СЛАУ | NexusN | Помощь студентам | 1 | 02.04.2008 10:17 |
Методы нахождения корней уравнения | werser | Помощь студентам | 8 | 20.02.2008 22:41 |