Форум: "Потрепаться";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизЗадачка по математике Найти похожие ветки
← →
max888 (2004-03-04 12:16) [0]Люди добрые, помогите решить пару примерчиков. Забыл как они решаются просто, а надо написать програмки для их решения:
1) Найти значение многочлена 3/5 + 5x/8 + 7x^2/11 + 9x^3/14 + ... + 15x^6/23
^ - это знак степени у меня
2) Найти целые корни ур-я x^4 - 6x^3 - 19x^2 + 84x = 0 на промежутке [-10, 10]
← →
pasha_golub © (2004-03-04 12:25) [1]1) Значение функции быть может. Это раз. Во вторых, решить уравнение с заданной точностью быть может.
2) Опять же, с заданой точностью? И с какой?
← →
MBo © (2004-03-04 12:25) [2]1. Так как задача учебная, то цикл for, а закономерность зависимости числителей и знаменателей от номера уж сам догадайся ;)
(с вычислительной точки зрения выгоднее в данном случае схему Горнера использовать - сам найди,что это такое)
2. свободного члена нет - один корень очевиден, делим на него, получается кубическое ур-е. Целые корни являются делителями свободного члена - находим все делители, подстановкой проверяем.
← →
MBo © (2004-03-04 12:27) [3]P.S. 2. Делим не на корень, конечно, а на X
← →
Saturn © (2004-03-04 12:33) [4]2 pasha_golub © (04.03.04 12:25) [1]
2 там же только целые корни надо найти точность то тут при чем?
можно ведь найти все корни а потом выделить нужнгые х1=0это сразу видно а потом просто все корни кубического уравнения.
← →
SergP © (2004-03-04 12:36) [5]>2) Найти целые корни ур-я x^4 - 6x^3 - 19x^2 + 84x = 0 на промежутке [-10, 10]
Что-то типа так:
for x:=-10 to 10 do
if MyFunction(x)=0 then
memo1.lines.add("Найден целый корень х="+inttostr(x));
...
← →
Saturn © (2004-03-04 12:46) [6]SergP © (04.03.04 12:36) [5]
Сам подход не правельный. Не математический :)
← →
pasha_golub © (2004-03-04 13:30) [7]Saturn © (04.03.04 12:33) [4]
Про целые не заметил. Посыпаю голову пеплом. :)
← →
max888 (2004-03-04 13:32) [8]SergP © (04.03.04 12:36) [5]
Ты имеешь ввиду если к примеру вместо x подставить какое-либо число(например -10) и если левое равенство будет равно правому, тогда результат верный? Так?
← →
max888 (2004-03-04 13:36) [9]MBo © (04.03.04 12:25) [2]
1. Так как задача учебная, то цикл for, а закономерность зависимости числителей и знаменателей от номера уж сам догадайся ;)
(с вычислительной точки зрения выгоднее в данном случае схему Горнера использовать - сам найди,что это такое)
Где эту чертову формулу взять может кто знает, или без нее как-нить можно обойтись. И если можно пободробнее что имеется ввиду под то цикл for, а закономерность зависимости числителей и знаменателей от номера уж сам догадайся - это вообще как???
Если нетрудно буду рад с примерами получить ответ ;)
← →
MBo © (2004-03-04 13:45) [10]Да уж...
Полный абзац.
← →
Romkin © (2004-03-04 14:01) [11]x^4 - 6x^3 - 19x^2 + 84x = 0 Все они целые (-4, 0, 3, 7)
← →
Saturn © (2004-03-04 14:15) [12]2 max888 (04.03.04 13:36) [9]
Если мне не изменяет память то (ёще Галуа доказал) что уравнения выше 5 степени аналитически не ренаются.
← →
Radionov Alexey © (2004-03-04 14:18) [13]>max888 (04.03.04 12:16)
Твоя схема Горнера:
3/5+(5/8+(7/11+(9/14+(11/17+(13/20+15/23*x)*x)*x)*x)*x)*x
:)
← →
Saturn © (2004-03-04 15:02) [14]Да нащет первого ворде у него совем нет корней.
Врпинцыпе самый простой метод решения такого уравнения это
1. Локализировать корни
2. Метод колокации (вроде так4 называется)
← →
max888 (2004-03-05 15:09) [15]по 1)
Люди, ну тогда решите пожалуйста этот многочлен. С его решения мне станет намного понятней, чем обсуждать всякие эти методы(грязные ;)
← →
pasha_golub © (2004-03-05 15:10) [16]max888 (05.03.04 15:09) [15]
Ято значит "решить многочлен"? Может я плохо математику учил?
← →
MPS © (2004-03-05 15:21) [17]pasha_golub © (05.03.04 15:10) [16]
Я тоже так про себя думаю. Ну вот ничего у меня не осталось в пямяти о многочленах :(( А задачка та по информатике за 10-й класс, вот такая фигня блин!!!
← →
Жорж (2004-03-05 15:27) [18]
function Poly(x: Double): Double;
var
S: Double;
PowerOfX: Double;
i: Integer;
begin
S := 3 / 5;
PowerOfX := 1;
for i := 1 to 6 do begin
PowerOfX := PowerOfX * x;
S := S + (3 + i * 2) * PowerOfX / (5 + 3 * i);
end;
Result := S;
end;
← →
Жорж (2004-03-05 15:47) [19]
type
TRoots = array[1..4] of Integer;
procedure FindRoots(var Res: TRoots; var RootNumb: Integer);
function Func(x: Integer): Integer;
begin
Result := x*(x*(x*(x - 6) - 19) + 84);
end;
var
i: Integer;
begin
RootNumb := 0;
for i := -10 to 10 do
if Func(i) = 0 then begin
Inc(RootNumb);
Res[RootNumb] := i;
end;
end;
← →
nikkie © (2004-03-05 17:26) [20]>Жорж
садись, четыре
:)
← →
Юрий Зотов © (2004-03-05 19:57) [21]> MBo © (04.03.04 13:45) [10]
Да...
Простейшие последовательности - проблема.
Формула Кардано - даже не прозвучало.
Как хорошо, что раньше не было Интернета...
:-(
← →
pasha_golub © (2004-03-05 20:02) [22]Юрий Зотов © (05.03.04 19:57) [21]
Не прозучало потому, что не для кого. Автор вопроса про Кардано разве что в Плей-Бое читал.
← →
nikkie © (2004-03-05 20:11) [23]скорее потому, что Кардано тут не к месту.
← →
pasha_golub © (2004-03-05 20:34) [24]nikkie © (05.03.04 20:11) [23]
Почему не к месту?
К месту. Во втором примере выносим х за скобки получаем уравнение третьей степени. И еще один корень = 0. Так что...
← →
nikkie © (2004-03-05 20:47) [25]>Почему не к месту?
потому что целые корни. судя по формулировке задачи (на промежутке [-10, 10]) имелось в виду решение с перебором всех целых из указанного интервала. но более математический способ - в [2] MBo, знать интервал не обязательно. через Кардано попробуй сделать, если сможешь - с меня пиво. но в любом случае, я думаю, согласишься, что это далеко не простой способ. ну и ограниченной применимости - годится лишь для уравнений 3-й степени.
← →
Юрий Зотов © (2004-03-06 00:14) [26]> nikkie © (05.03.04 20:47) [25]
Выносим X за скобку и получаем нулевой корень. Остается уравнение 3-й степени. Решаем по Кардано и проверяем на принадлежность к интервалу и на целостность.
1. Что не так?
2. Перебор в цикле от -10 до +10 разве быстрее?
← →
nikkie © (2004-03-06 01:42) [27]>1. Что не так?
все так, только давайте попробуем прикинуть, как реализовать такой алгоритм...
смотрим, что есть формула Кардано.
http://encycl.yandex.ru/cgi-bin/art.pl?art=bse/00032/61000.htm&encpage=bse
действие 1. выделяем полный куб, чтобы преобразовать к нужному виду. в целом, не сложно.
действие 2. применяем формулу Кардано. м-дя. если дискриминант (это то, что под квадратным корнем стоит) положительный, то все сравнительно просто. а если дискриминант отрицательный, то нам придется брать кубические корни из комплексного числа, что есть упражнение по тригонометрии с применением какой-нибудь обратной тригонометрической функции.
чтобы не думать самим, находим реализацию в интернете:
http://algolist.manual.ru/maths/findroot/cubic.php
получили 1-2-3 вещественных корня.
действие 3. округлить корни до целого и подставить в исходный многочлен (а иначе я даже и не знаю, как убедиться, что корень - целый).
2. Перебор в цикле от -10 до +10 разве быстрее?
ввиду выше описанного, мне кажется, да. по схеме Горнера для вычисления значения кубического многочлена надо всего 3 сложения и 3 умножения.
кроме того,
1. заведомо проще такой алгоритм написать.
2. такой алгоритм работает не только для кубических уравнений.
← →
SergP © (2004-03-06 03:58) [28]>pasha_golub © (05.03.04 20:34)
>>nikkie © (05.03.04 20:11) [23]
>Почему не к месту?
>К месту. Во втором примере выносим х за скобки получаем уравнение третьей >степени. И еще один корень = 0. Так что...
А вообще эти задачки из разряда тех дурацких, при обсуждении которых тут несколько месяцев назад я, Думкин и еще кто-то (не помню), почти только втроем довольно длинную ветку написали...
Дело в том что нормальные люди не пишут программ для решения уже готовых уравнений, потому что (на примере сабжа):
Программа решающая данную задачу будет предназначена только для решения данного уравнения и больше ничего, соответственно для работы программы не требуются никакие входные данные, результат ее работы всегда одинаков.
если принять во внимание то что во 2-й задаче можно вынести х за скобки и ответ х1=0 очевиден, то далее делаем вывод что можно также вынести за скобки (x-3), следовательно х2=3 и т.д.
В таком случае получается что самая простая программа, решающая данную задачу, это:
label1.caption := "Решения задачи: x1=-4, x2=0, x3=3 ,x4=7";
← →
vidiv © (2004-03-06 08:07) [29]Уравнение 4ой степени можно еще и методом Феррари решить. Т.е. путем выделения разности квадратов...
У формул Кордано такой "страшный" вид, что невольно приходит мысль что целые корни никак не получатся
← →
MBo © (2004-03-06 08:46) [30]Рещать кубическое уравнение можно, но в данном случае не нужно, поскольку - если у уравнения с целыми коэфф. есть целые корни, то они являются делителями свободного члена, что проходится в школе и иногда используется в старших классах для решения простейших куб. уравнений подстановкой. А поскольку очевидно, что задание направлено на освоение простейших конструкций языка, то вполне может подойти и способ с перебором в цикле от -10 до 10.
Однако полностью ответить на то, какой способ требовался, может только злобный коварный преподаватель ;))
← →
Юрий Зотов © (2004-03-06 09:41) [31]Да в общем-то, речь даже и не об этом шла. Какая, в конце концов разница - Кардано или не Кардано. Другое грустно.
← →
vidiv © (2004-03-08 10:03) [32]К стати я не жалею что не поступил на специальность "Инофрмака". А поступил на Математика... учу математику по полной:)
← →
Romkin © (2004-03-08 15:11) [33]Юрий Зотов © (06.03.04 09:41) [31]
Что грустно? По-моему, вполне естественно, когда для данной задачи предлагается наиболее краткое и подходящее решение. Хотите формулу Кардано - переформулируйте условие. Применение формулы Кардано является наименее удобным сбособом нахождения целых корней. В [27] nikkie уже это показал, достаточно сравнить с [19].
Если же вы хотите сказать, что возможность спросить и быстро получить решение именно для частного случая, яркий пример чего мы видим в данном вопросе, это плохо, то тут также можно возразить: каждый решает для себя сам. Тем более в форуме, где, как можно заметить, отвечают именно на поставленный вопрос, а не пытаются делать догадок о том, что вопрошающий хотел спросить на самом деле, и что ему на самом деле не хватает в теории.
В частности, я, например, не помню, когда мы проходили в школе "если у уравнения с целыми коэффициентами есть целые корни, то они являются делителями свободного члена". Просто я тогда не учился, точнее, я уверен, что этот факт упоминался вскользь и с отрывом от практики. Так обычно и бывает. Простой пример: совсем недавно я был поражен, когда помогал дочери соседки разобраться с простыми дробями. Причем она не могла разобраться просто с целочисленной арифметикой (5 класс), без всяких буквенных обозначений алгебры! Причина выяснилась очень быстро: ей никто не сказал, что дробь - это просто число. Ей сказали, что простая дробь - это два числа, разделенные чертой, после этого дали кучу алгоритмов для сокращения дроби и арифметики. Никакого практического применения затронуто просто не было. И когда я ей объяснил на яблоках, что дробь - это просто число, часть целого, больше просто ничего объяснять не пришлось, всем действиям с дробями сразу нашлось естественное применение. Да и теория стала понятной.
К чему все это? Я хочу сказать, что, с одной стороны, даже если человек хочет учиться, его не всегда учат, а с другой стороны, даже если человека учат, но он не хочет этого, то он также ничему не научится. Гадать, какой именно случай имеет место с задавщим вопрос, имхо, не имеет смысла в форуме. Это задача преподавателя, а не отвечающего. Да и иногда нарваться можно :))
← →
Юрий Зотов © (2004-03-09 15:39) [34]> Romkin © (08.03.04 15:11) [33]
> Что грустно?
Что такой вопрос вообще возник.
> Гадать, какой именно случай имеет место с задавщим вопрос,
> имхо, не имеет смысла
А это и не важно. Возник ли вопрос из-за преподавателя, или из-за самого спрашивающего - уже неважно. Причины могут быть самими разными, но результат один - человек не может решить простейшую задачу. Что и грустно.
← →
pasha_golub © (2004-03-09 15:46) [35]Юрий Зотов © (09.03.04 15:39) [34]
Грустно, согласен. Большинство людей, получающих ВО, есть посредственности. Что уж говорить о школе?
Но не смотря ни на что, я продолжаю считать, что советское (постсоветское) образование лучшее в мире.
← →
Romkin © (2004-03-09 15:58) [36]Ерунда. Опять же, грустить не о чем. Пару лет назад я объяснял доктору, декану факультета, как строить гистограмму распределения Пуассона, ну и как моменты вычислять. И что? Мне было весело, но никак не грустно. Доктор хим. наук, кстати. Не надо было ей это никогда, а тут - оп! Через неделю лекцию по полимеризации читать, а там такое :))
И ничего.
← →
Юрий Зотов © (2004-03-09 19:31) [37]> Romkin © (09.03.04 15:58) [36]
А ведь она, поди, еще в институте все это изучала. Ну хотя бы названия и область должна была помнить, чтобы открыть нужную книжку в нужном месте и прочитать. Для того ведь и учили.
Как-то мне довелось объяснять дипломированному инженеру, каким уравнением описывается нисходящая прямая. Средняя школа, однако.
Этот человек руководил научным отделом в НИИ. Под его началом находилось более полусотни человек. Из них - с десяток (если не более) кандидатов наук, из которых пара-тройка человек вполне соответствовала уровню доктора.
По должности он имел решающий голос при планировании тематики и хода ее выполнения, право первой подписи под научными отчетами и пр.
Разве не грустно?
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.046 c