Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.056 c
14-1078439802
Talla2k
2004-03-05 01:36
2004.04.04
ICQ


1-1079585912
-= Evgeney =-
2004-03-18 07:58
2004.04.04
Реестр


1-1079091610
Tornado
2004-03-12 14:40
2004.04.04
Работа со строками


3-1077856645
ProgC
2004-02-27 07:37
2004.04.04
Как найти редактируемую запись после Commit а


1-1079089484
saska
2004-03-12 14:04
2004.04.04
про Мессаги





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский