Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Вниз

Математика для программиста   Найти похожие ветки 

 
SkyRanger ©   (2006-03-27 01:09) [0]

Что должен знать программист из математики.
Давайте конкретно список разделов математики и объем по 5 бальной шкале.


 
Кручен-Верчен ©   (2006-03-27 01:24) [1]

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


 
Marser ©   (2006-03-27 01:36) [2]

Элементарные алгебра и геометрия всем скопом.
Ещё как минимум матрицы, начала матана и численные методы.


 
Petr V. Abramov ©   (2006-03-27 02:03) [3]

0. - умение найти книжку по нужному разделу математики - 5
1. - умение понять, что эта книжка слишком сложная - 5
2. - умение найти более простую - 5
3. - понимание простой книжки - 3
4. - умение умение после простой книжки понять сложную - 3
5. - умение понять, что сложной на трояк не хватает и перейти к п.2 - 5


 
XeON ©   (2006-03-27 02:45) [4]

Моё мнение - знание математики как таковое не нужно. Т.е. нужны основы. И тут я готов согласиться с Кручен-Верчен. Но чем лучше ты знаешь математику - тем профессиональнее будут сложные программы и тем тебе будет легче "понимать прогамму". Хотя, думаю к языку BASIC это ни как не относиться...


 
Юрий Зотов ©   (2006-03-27 02:47) [5]

> SkyRanger ©   (27.03.06 01:09)  
> Что должен знать программист из математики.

Из математики, а также из всех остальных наук грамотный программист должен уметь:

1. Четко понять, что конкретно ему нужно для решения задачи.
2. Если это не выходит за рамки школьной программы или 2-го курса ВУЗа, то решить задачу без дополнительной литературы.
3. Если выходит, то найти нужную литературу, а в ней найти интересующую его часть, прочитать и понять ее, затем решить задачу.


 
Ketmar ©   (2006-03-27 02:52) [6]

e=mc^2.
а если серьёзно --- что тут объяснять? точнее -- кому?


 
Ketmar ©   (2006-03-27 02:53) [7]

>Юрий Зотов ©   (27.03.06 02:47) [5]
Юрий, не мечите бисер...


 
Германн ©   (2006-03-27 03:02) [8]


> Юрий Зотов ©   (27.03.06 02:47) [5]


У меня в МИФИ границей был всё-таки третий курс, а не второй. Но это так, замечание без смысла.
Хотя понять "эквивалентность школьной программы и 2-го курса ВУЗа" - весьма не просто. :-(
Не, ну я "гулял по-чёрному на первом курсе", без особых потерь. Но наверно не это имелось в виду. ???


 
SkyRanger ©   (2006-03-27 06:33) [9]

Уууу...
Оказывается большинство согласно что высшее мат. образование программисту не нужно... :)))) В том смысле что даже без него найдет книжку и решит все что надо :)
Смотрите:
1. Petr V. Abramov ©   (27.03.06 02:03) [3]
2. XeON ©   (27.03.06 02:45) [4]
3. Юрий Зотов ©   (27.03.06 02:47) [5]

А вообще если конкретно. Тут Думкин разорялся что нужно образование высшее, да еще математическое. Вот я и спрашиваю что из математики ему не мешало бы знать???


 
Ketmar ©   (2006-03-27 06:37) [10]

сложение, вычитание, умножение, деление.


 
Думкин ©   (2006-03-27 06:48) [11]

> SkyRanger ©   (27.03.06 06:33) [9]

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


 
Ketmar ©   (2006-03-27 06:57) [12]

2Думкин: а всё-таки русская языка уважать надо. %-)


 
Думкин ©   (2006-03-27 07:02) [13]

> Ketmar ©   (27.03.06 06:57) [12]

%) Нодо. Но не с утра же пораньше? К вечеру и зауважаю. И Украинский тоже.
Опечатки надеюсь - не в счет?


 
Ketmar ©   (2006-03-27 07:06) [14]

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


 
Думкин ©   (2006-03-27 07:10) [15]

> Ketmar ©   (27.03.06 07:06) [14]

Заяптые - это моя беда. Со школы. Собственно тире и пользую почти поэтому. :) В аттестате за среднюю по русскому - так и стоит 3. А по немецкому - выше. Может по немецки писать?
Перевел все часы, кроме тех по которым встаю. Поэтому утро чуток затянулось. :(

Кстати про насущную необходимость диплома о высшем, вообще никогда не утверждал. Но регулярно узнаю - что таки да. Откуда люди сведения черпают? А попросишь источник - не делятся. :(


 
grisme ©   (2006-03-27 07:11) [16]

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


 
Ketmar ©   (2006-03-27 07:18) [17]

>Думкин ©   (27.03.06 07:10) [15]
право же, слушая (читая) других -- узнаёшь много интересного о себе. такого, о чём и сам не подозревал. %-)

а на немецком писать не надо. слово "ахтунг" могут понять неправильно. %-)


 
Думкин ©   (2006-03-27 07:35) [18]

> grisme ©   (27.03.06 07:11) [16]

Но для того чтобы быть готовым к такому поиску - надо быть готовым. Не так ли?
Способов много. И один из из них - учиться у  учителей живых. В частности в ВУЗе. Это не принижает другие способы, но этот способ при правильном использовании способен дать высокую отдачу, за не такое уж и большое время. При этом он способен охватить массы, а не единицы.
Формирование кругозора оно разное. В частности - такое. И если речь о Высшем Образовании, а не о дипломе все-таки - то в чем проблема? Оно такой кругозор дает.

Если врач не знает о таком разделе как матсттатистика, то он ее в итоге все-равно придумает(обобщенный врач - медицина). Но если бы сталкивался - то изобретение велосипеда было бы ни к чему. А я сталкивался с таким, как раз у врачей. Когда человек д.м.-н. с неподдельной радостью выдавал как откровение то, что известно любому третьекурснику, изучавшему матстатистику.

А уж сколько велосипедов регулярно изобретают "программисты"?


 
grisme ©   (2006-03-27 07:46) [19]


> Но для того чтобы быть готовым к такому поиску - надо быть
> готовым. Не так ли?

Так-то оно так, но некоторым необязательно заканчивать ВУЗ и помнить, допустим, формулу перемножения матриц. Если ЕМУ это понадобится в работе - он найдет источник, где про это почитать. И я хочу сказать, что таких людей довольно много...:)


 
Ketmar ©   (2006-03-27 07:48) [20]

но желательно хотя бы знать, что такое ЕСТЬ вообще. по-моему, именно об этом говорил Думкин.


 
Думкин ©   (2006-03-27 07:49) [21]

> grisme ©   (27.03.06 07:46) [19]

Повторяю - при чем тут ВУЗ? Кислое с мягким не путается, как у оратора?


 
grisme ©   (2006-03-27 07:53) [22]

Ketmar ©   (27.03.06 07:48) [20]
А как ОН стал программистом, если он даже не знает, что такое есть?:(
Просто все ЭТО-относиться к разделу "Практическая Математика"(ее должен знать каждый, кто хочет работать не руками, а головой) и не является Математикой "настоящей"(Думкин меня поймет)..:)


 
Думкин ©   (2006-03-27 07:55) [23]

И помнить? Если меня сейчас сию минуту проэкзаменовать по предметам которые мне преподавали - то по многим я 4 получу с великим трудом, а по-многим - элементарно забананюсь. Но и что?
Это принижает их изучение? Да нисколько. У меня есть полочки, которые были построены. На них что-то складировалось. Оно не актуально зачастую. Подернулось пылью. но если приспичит. а оно иногда таки приспичивает - я знаю, что вот такая полка есть - иду к ней и трясу пыль. При этом я знаю как строить новые полки и строю и сваливаю туда что-то, что понадобится.

А правило правого винта или левого - я и по сейчас не помню и не запоминал никогда. Равно как и с матрицами. Строки, столбцы, что первым в записи. Зачем?


 
Думкин ©   (2006-03-27 07:57) [24]

> grisme ©   (27.03.06 07:53) [22]

Но тем не менее "становятся", если верить одной недавней ветке. Ветку про калькулятор тревожить не будем.


 
grisme ©   (2006-03-27 08:00) [25]

Думкин ©   (27.03.06 07:55) [23]
Как-то противоречится все...я про это, в принципе, и говорил.:)
Но из последних Ваших слов стала ясна Ваша точка зрения. Вы предполагаете, что человеку, для того чтобы узнать "что такое ЕСТЬ вообще" нужно пройти путь ВУЗ"а? Я так не считаю...А как же профессиональные спецы, не заканчивающие ВУЗ"ов?


 
Ketmar ©   (2006-03-27 08:00) [26]

>grisme ©   (27.03.06 07:53) [22]
блин, "За Передовую Магию"... %-)


 
Думкин ©   (2006-03-27 08:01) [27]

Это как с новичками. Почти.
Новичок кричит в ветке - Хелп!!!!!!! И не может решить задачу и не знает с какого бока подойти. при этом он вроде чего-то знает. Более опытный же спокойно находит информацию по вопросу, иногда не в одном разделе, а в нескольких и связывает их воедино и дает ответ.
Чем более подготовлен человек, тем на более сложные вопросы он спосбен находить ответы и решения.
Это кажется, очевидно. Или что не так?


 
Думкин ©   (2006-03-27 08:02) [28]

> grisme ©   (27.03.06 08:00) [25]

Ткните меня пальцем где я утверждал, что путь - один? Вы читаете или где?


 
grisme ©   (2006-03-27 08:02) [29]

Думкин ©   (27.03.06 07:57) [24]
Значит пути их становления очень сомнительны (богатенький папочка толкнул или забашлял)...он не сможет долго так продержаться...imho


 
Ketmar ©   (2006-03-27 08:12) [30]

>grisme ©   (27.03.06 08:02) [29]
сколько бы папеньа не башлял, сыночка от этого программистом не станет. знания пока нельзя купить -- только приобрести. а вот устроиться на работу без знаний -- это запросто. %-(


 
Ketmar ©   (2006-03-27 08:13) [31]

"приобрести" -- не значит "купить" %-)) значит "выучить".


 
Думкин ©   (2006-03-27 08:14) [32]

> grisme ©  

Если уж о позиции, то я ее озвучивал:
1. Спор в основном терминлогический - "что такое программист?". Он бесперспективен, на чем и вы сошлись со мной.
2. Лучше исходить из задач стоящим перед конкретным человеком. И тут действительно: многим у кого в трудовой написано "программист" не нужно очень многого, очень лишние сущности оказываются.
3. Но на заборе тоже пишут. И я считаю, уже со своей позиции - запись в трудовой не делает человека программистом. А только круг решаемых задач.
4. Для задач решаемых программистами, я считаю, знакомство со многими разделами математики - необходимо как воздух. И это отнюдь не только основы линейной алгебры. А гораздо более широкий спектр.
5. Если вы это прочитали под заголовком "Мухокакино" - оно не перестало быть реляционной алгеброй или БНФ. А тогда вопрос - всегда ли стоит изобретать велосипед?
6. Откуда здесь делают вывод, о том что тогда ВУЗ является необходимым и достаточным - для меня загадка. Но и вы сделали такой вывод. Откуда?


 
grisme ©   (2006-03-27 08:15) [33]


> Ткните меня пальцем где я утверждал, что путь - один? Вы
> читаете или где?


Извините, не внимательно прочел [18]...а так конечно...:)


 
grisme ©   (2006-03-27 08:30) [34]


> 6. Откуда здесь делают вывод, о том что тогда ВУЗ является
> необходимым и достаточным - для меня загадка. Но и вы сделали
> такой вывод. Откуда?

потому что ВУЗ учит искать нужный материал, помогает узнать, как сказал Ketmar, что такое вообще есть и это можно не изобретать.


 
Ketmar ©   (2006-03-27 08:37) [35]

кстати, сам Кэтмар никаких ВУЗов не заканчивал. %-)


 
TUser ©   (2006-03-27 08:40) [36]

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


 
grisme ©   (2006-03-27 08:41) [37]

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


 
Юрий Зотов ©   (2006-03-27 11:01) [38]

> SkyRanger ©   (27.03.06 06:33) [9]

Странно Вы истолковали мои слова. Разве не ясно, что для того, чтобы удовлетворить всем трем пунктам за разумное время программисту как раз и нужно высшее образование?

Конкретно, из математики ему не помешало бы (как минимум!) знать:
1. Школьную программу - само собой разумеется.
2. Программу хорошего технического ВУЗа за 2 первых курса. В частности:
- векторную алгебру;
- аналитическую геометрию;
- дифференциальное и интегральное исчисление;
- теорию вероятностей и мат. статистику;
- численные методы;
- линейное программирование.

Повторюсь: это - минимум.


 
Юрий Зотов ©   (2006-03-27 11:21) [39]

> grisme ©   (27.03.06 07:46) [19]

> некоторым необязательно заканчивать ВУЗ и помнить, допустим, формулу
> перемножения матриц. Если ЕМУ это понадобится в работе - он найдет
> источник, где про это почитать.

1. Для начала он должен понять, а ЧТО же именно ему понадобилось, ЧТО же именно ему нужно искать. Если не знать о существовании матриц, довольно сложно понять, что искать нужно формулу их перемножения. А если знать - без проблем.

2. Потом он должен знать, ГДЕ именно ему нужно это искать. Если не знать о существовании раздела математики под названием "векторная алгебра", то и это будет довольно сложно. А если знать - без проблем.

3. И наконец, он должен ПОНЯТЬ найденный и прочитанный им материал. И если он ранее его не изучал, то запросто может получиться так, что для того, чтобы его ПОНЯТЬ, ему придется сначала найти, прочитать и понять ДРУГОЙ материал - тот, на котором базируется ранее найденный.

Таким образом, ему придется вернуться к п.1 и этот увлекательный процесс итерационного познания может растянуться на пару лет (именно столько времени занимает общеобразовательная программа технического ВУЗа). Результатом, скорее всего, будет увольнение с работы. Поскольку я еще не встречал работодателей, готовых пару лет ждать решения мелкой подзадачки и платить зарплату за самообразование сотрудника.


 
boriskb ©   (2006-03-27 11:29) [40]

Ничего не понимаю.
Если обхОдитесь без математики в своей работе - то и обходИтесь.
И пусть вас не волнует, что местные Гуру не будут, в таком случае, считать вас настоящим программистом.
Или все-таки волнует?
Тогда почему их не слушаете?
Маразм какой-то...


 
Romkin ©   (2006-03-27 11:40) [41]

Юрий Зотов ©   (27.03.06 11:01) [38] Еще булеву алгебру не помешало бы


 
Johnmen ©   (2006-03-27 12:01) [42]

Даже если этот гипотетический товарищ без высшего образования и найдёт вдруг источник,  где про это почитать, он не станет читать ввиду нехватки времени, желания, образования или просто из-за лени.
Если же всё-таки прочитает, то см. [39].

И всё придёт к тому, что товарищ возопиёт "Дайте код! Срочно! Вам что, жалко? Тоже мне умники..."


 
Jeer ©   (2006-03-27 12:30) [43]

Romkin ©   (27.03.06 11:40) [41]


> Еще булеву алгебру не помешало бы


Точнее - дискретную математику в которой булева алгебра является ее разделом (+ формальная логика, комбинаторика, графы)


 
isasa ©   (2006-03-27 12:53) [44]

Юрий Зотов ©   (27.03.06 11:21) [39]
Для илюстрации процесса, тут мелькает ветка о точке и полигоне, где, в общих чертах, алгоритм решения в одну строку(провести прямую ?). А сколько систем нужно решить в результате(или определить, что система не имеет действительных корней), чтобы выяснить, пересекается, или нет?
И что значит, провести прямую(о мониторе речь не идет)?


 
Юрий Зотов ©   (2006-03-27 13:00) [45]

> isasa ©   (27.03.06 12:53) [44]

Не понял иллюстрации - что именно она иллюстрирует?

По поводу этой ветки могу сказать, что программист, помимо теории, должен еще знать практический инструмент, с которым он работает. Для нас это, прежде всего, Delphi и WinAPI. И если его знать, то задача решается моментально, в несколько строк, вызовом трех функций WinAPI.


 
Sandman25 ©   (2006-03-27 13:05) [46]

Юрий Зотов ©   (27.03.06 13:00) [45]

Вот и получается, что математика не нужна. Потому как элементарную математику все и так знают, а неэлементарную в API и библиотеки засовывают.


 
Юрий Зотов ©   (2006-03-27 13:11) [47]

> Sandman25 ©   (27.03.06 13:05) [46]

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

И это при условии, что человек УЖЕ ПОНЯЛ, что встретившаяся ему задача сводится к решению системы уравнений в частных производных. А ведь это еще понять надо. И для этого нужно хотя бы просто знать, что такое частная производная.

Так как, ждать ссылки, или сразу сдадитесь?
:о)


 
Sandman25 ©   (2006-03-27 13:14) [48]

Юрий Зотов ©   (27.03.06 13:11) [47]

Конечно, сдамся. Хотя не исключаю, что в ближайшем будущем появятся какие-нибудь MathCad, которые будут решать и СУ в частных производных в том числе.


 
psa247 ©   (2006-03-27 13:19) [49]

Математика она везде. Матфак - рулез !!!!
:)


 
Юрий Зотов ©   (2006-03-27 13:23) [50]

> Sandman25 ©   (27.03.06 13:14) [48]

Если бы это было вообще возможно, такой инструмент уже давно появился бы хотя бы в том же МатКаде. В том то все и дело, что есть куча задач, для которых ОБЩЕГО инструмента просто не существует ни в каких библиотеках и API. Поскольку его не существует вообще. И тогда его приходится делать ручками, для своего конкретного случая. А для это нужно сначала ПОНЯТЬ, что именно тебе надо сделать, а потом еще и суметь сделать.


 
Petr V. Abramov ©   (2006-03-27 13:34) [51]

SkyRanger ©   (27.03.06 06:33) [9]
 Вынужден разочаровать - без хорошей базы [3] невыполнимо за конечное время


 
Sandman25 ©   (2006-03-27 14:06) [52]

Юрий Зотов ©   (27.03.06 13:23) [50]

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


 
TUser ©   (2006-03-27 14:52) [53]

> а неэлементарную в API и библиотеки засовывают

А библиотеки эти марсиане нам напишут?


 
Sandman25 ©   (2006-03-27 15:01) [54]

TUser ©   (27.03.06 14:52) [53]

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


 
Jeer ©   (2006-03-27 15:03) [55]

Sandman25 ©   (27.03.06 15:01) [54]

Лучший программист - это биолог, медик, финансист, экономист, математик - на худой конец.
Я в это свято верил:))


 
Sandman25 ©   (2006-03-27 15:06) [56]

Jeer ©   (27.03.06 15:03) [55]

И всё это он должен изучить в перерывах между работой по расчету подводных аппаратов, температурно-климатического режима на балконе и хобби на токарном станке. Я в это никогда не поверю :) Точнее, никогда не соглашусь :)


 
Jeer ©   (2006-03-27 15:20) [57]

Sandman25 ©   (27.03.06 15:06) [56]

Это не многим удается, но это возможно:))
В основном - для Инженеров "старого образца".

Если интересно - свяжись. (17579482)
Впрочем, я не призываю ни к первому, ни ко второму.

Так - есть возможность..


 
Sandman25 ©   (2006-03-27 15:24) [58]

Jeer ©   (27.03.06 15:20) [57]

Всё возможно, было бы свободное время.

Связаться не могу - нет аси. Мое мыло в анкете, если надо.


 
Jeer ©   (2006-03-27 15:37) [59]

Sandman25 ©   (27.03.06 15:24) [58]

Это ты у нас "Фома" :))


> было бы свободное время.


Или умение жить по другим часам:)


 
Sandman25 ©   (2006-03-27 15:42) [60]

Jeer ©   (27.03.06 15:37) [59]

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


 
Jeer ©   (2006-03-27 15:58) [61]

Sandman25 ©   (27.03.06 15:42) [60]


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


Каким быть именно тебе - решать опять же - тебе.


> я пока не хочу тебе хамить :)
>


Придержи желание до "лучших" времен.
Может статься и поймешь, что взять "пацана за шкирку и выдрать" и есть тот самый "мужской" поступок.
Или научить, но опять же "через шкирку".


 
Sandman25 ©   (2006-03-27 16:22) [62]

Jeer ©   (27.03.06 15:58) [61]

Да причем здесь "пацана за шкирку"??? Женщина тоже человек, причем некоторые лучше многих мужчин, не исключая и тебя. Ну вот, начинаю хамить :(


 
oldman ©   (2006-03-27 16:32) [63]

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


 
Jeer ©   (2006-03-27 17:16) [64]

Sandman25 ©   (27.03.06 16:22) [62]


> причем некоторые лучше


Лучше, спорить не буду - вопрос относительно чего "лучше", а это уже очень спорный вопрос.
"Ара, женщина ! Твой ден - восьмое марта".

oldman ©   (27.03.06 16:32) [63]

Знание компьютерной математики подразумевает знание правил вычислений:)


 
oldman ©   (2006-03-27 17:18) [65]


> Jeer ©   (27.03.06 17:16) [64]


давайте разделять:
- арифметику
- математику
- алгебру
- логику
- анализ
- и т.д...

а то вопрос [0] какой-то непонятный...


 
Думкин ©   (2006-03-28 05:45) [66]

> oldman ©   (27.03.06 17:18) [65]

Разделить нельзя. Суть ведь математики в простом: как из одной группы утверждений получить другую или связать их.
В понедельник всегда идет дождь. Сеогдня понедельник. Вывод?
Это доступно даже очень неподготовленному человеку. Но такими примитивными конструкциями разум не заканчивается. И те конструкции которыми в состоянии оперировать изучавший математику - на многие порядки выше. А конструкции первого края - тихо молчим.
И все.


 
Думкин ©   (2006-03-28 05:45) [67]

Но это все олдно - не нечто из книжек или придуманное. Это всего лишь наш разум.


 
SkyRanger ©   (2006-03-28 09:36) [68]

>>Юрий Зотов ©   (27.03.06 11:01) [38]
разумное время это сколько??? 5-6 лет???
Там дальше по списку: Все ентоя изучал в техникуме когда учился на техника-программиста. А это еще далеко не ВУЗ. Может и не в том объеме что в ВУЗе, но чтобы как говорили иметь представление - пожалуйста.
Вообще я все таки настаиваю что надо не просто тупо давать знания, как сейчас это делают. Лабораторные не в счет. А в процессе обучения должны реально решаться задачи программирования и моделирования. Т.е. Чтобы потом на парах по программированию все изученное реализовывалось и желдательно чтобы сначала давалась теория+реальная задача. Потом в иечении максимум недели реализация на языке программирования шла.

Вообще если честно тут идет уже речь скорее о логике. Т.е. о способности человека мыслить логически и последовательно. Проводить анализ и делать выводы.

Математика тут не поможет.

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

А база. Теперь это понятие истончается постепенно. Кто хочет учится, без всякой быза научится, благо интернет ему поможет, кто не хочет - отсидит 5-6 лет без толку на мат. факультете...


 
Jeer ©   (2006-03-28 10:18) [69]


> поэтому программистов так немного.


> благо интернет ему поможет


Тапочки уже рот раскрыли :)


 
pasha_golub ©   (2006-03-28 10:28) [70]


> Jeer ©   (28.03.06 10:18) [69]


Кормить надо. Тапочки-то... ;0)

Хотя согласен, уровень академической теории в нете ужасно низок. Всякого рода "социологии и экономики", я не считаю. Более того, мое личное мнение таково, что по книжке учиться гораздо сложнее, нежели "с доски" на паре.


 
Jeer ©   (2006-03-28 10:37) [71]

pasha_golub ©   (28.03.06 10:28) [70]


> по книжке учиться гораздо сложнее,


Так, проще вообще не учится.


 
pasha_golub ©   (2006-03-28 11:12) [72]


> Jeer ©   (28.03.06 10:37) [71]


> Так, проще вообще не учится.

С этим, по-моему, априори вcе согласны. :p


 
Харько ©   (2006-03-28 12:00) [73]

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


 
Юрий Зотов ©   (2006-03-28 12:10) [74]

> Харько ©   (28.03.06 12:00) [73]

В том числе, численные методы решения диффуров? Они ведь тоже входят в курс вычислительной математики.

Но тогда, видимо, надо хотя бы знать, что такое диффур? Как минимум.

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

Но тогда, видимо, надо хотя бы знать, что такое производная? Как минимум.


 
isasa ©   (2006-03-28 12:21) [75]

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


 
Думкин ©   (2006-03-28 12:22) [76]

#ifdef offtop
> Jeer ©  

Сорри, за оффтоп. У тебя с асей что-то. Твои тексты видно. А ответы ты, видимо, не видишь.

#endif


 
Jeer ©   (2006-03-28 12:59) [77]

Думкин ©   (28.03.06 12:22) [76]

Извиняюсь за оффтоп - состыковались:)
В бегах был.


 
Юрий Зотов ©   (2006-03-28 14:25) [78]

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


 
Думкин ©   (2006-03-28 14:33) [79]

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


 
TUser ©   (2006-03-28 15:11) [80]

> Думкин ©   (28.03.06 14:33) [79]

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


 
Paul_K ©   (2006-03-28 16:50) [81]


> Юрий Зотов ©   (28.03.06 14:25) [78]
> И я в упор не понимаю, как
> можно научиться читать, не выучив сначала букв.

А программы для чтения текста? :) существуют дже они, разработаны  умными  дядьками. Специально для тех кто букв учить не хочет


 
Думкин ©   (2006-03-28 18:28) [82]

> TUser ©   (28.03.06 15:11) [80]

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


 
TUser ©   (2006-03-28 18:33) [83]

> Если не очень - то увеличим число точек. А то, что при этом можем удалятся от решения и невдомек.

Примерно говоря так. Все что угодно можно аппроксимировать полиномом сотой степени. Только такая чушь получается. Счастлив, что работаю под руководством людей, которые это понимают и могут мне объяснить.


 
Думкин ©   (2006-03-28 18:50) [84]

> TUser ©   (28.03.06 18:33) [83]

Ну или так:
1. Имеем потенциальное обтекание осесиметричного эллипсоида. Найти распределение скоростей жидкости на нем. Задача имеет решение выписываемое в квадратурах.
2. Поробуем рассчетом получить. Строим модель считаем. Нечто получаем. Можем сравнить с точным ответом. Не подошло - ищем дальше.
3. Потом полученное прилагаем к обтеканию клина (в осесимметричном не знаю, есть ли решение в квадратурах, но все рассуждения можно к плоскому случаю свести - там точно есть). Если не сходится - можем подгонять метод дальше.
4. Дано произвольное осесимметричное тело. Получим результат. Где гарантия, что то, что мы получили близко к точному решению? И что увеличивая число точек мы все больше и больше приближаемся в какой-нибудь норме в определенном пространстве к точному решению? Исходя из метода применямого в 2-3 - у нас такой гарантии нет.
5. Гарантия может быть получена или очерчены границы построенного метода, но для этого и нужны приемы далеко выходящие за начальные рамки. К сожалению, понимание этого есть не у многих, даже тех кто вроде в этом.


 
SkyRanger ©   (2006-03-29 01:03) [85]

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

Я за то чтобы было больше РЕАЛЬНЫХ практических задач.

К примеру тот же пресловутый красивый график построить. Не только математически, но и прогу написать. Хотя бы на Си или на Паскале используя Graph модуль...


 
Думкин ©   (2006-03-29 05:10) [86]

> SkyRanger ©   (29.03.06 01:03) [85]

Лично я, в выражаемой вами позиции совершенно запутался. Кто на ком сидел - так и не понял.


 
Думкин ©   (2006-03-29 05:20) [87]

А недостатка в РЕАЛЬНЫХ практических задачах и не наблюдается. Куда больше? Например, уменьшить трубное сопротивление при движении воды - для отопления хотя бы. Или взять грунт со дна не сделав воду мутной. Или экологически вменяемую добычу рудного и россыпного золота. И....
И чтобы дешево. Вам еще? Их есть у меня.


 
Думкин ©   (2006-03-29 05:50) [88]

А у вас может ситуация и такая.
Но.... у вас а не у нас(с)


 
Думкин ©   (2006-03-29 05:51) [89]

- Итак, что мы имеем.
- Простите, не мы, а вы. (с Операция Ы)


 
Юрий Зотов ©   (2006-03-29 06:39) [90]

> SkyRanger ©   (29.03.06 01:03) [85]

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

Вы хотели построить красивый график? ОК, пусть в результате некоторых измерений получилась вот такая кривая, заданная точками:

X    Y
 0  500
70  335
140  39
210  30
280 183
350 329
420 420
490 466
560 487
630 495
700 498

Задача - построить красивый график этой кривой. Только именно красивый, а не тяп-ляп. Вы же как раз о ней, красоте говорили?

Оси, их оцифровку и прочие бантики можно не рисовать, это вопрос техники и он не интересен. Интересна лишь сама кривая.

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


 
Юрий Зотов ©   (2006-03-29 06:39) [91]

> SkyRanger ©   (29.03.06 01:03) [85]

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

Вы хотели построить красивый график? ОК, пусть в результате некоторых измерений получилась вот такая кривая, заданная точками:

X    Y
 0  500
70  335
140  39
210  30
280 183
350 329
420 420
490 466
560 487
630 495
700 498

Задача - построить красивый график этой кривой. Только именно красивый, а не тяп-ляп. Вы же как раз о ней, красоте говорили?

Оси, их оцифровку и прочие бантики можно не рисовать, это вопрос техники и он не интересен. Интересна лишь сама кривая.

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


 
Юрий Зотов ©   (2006-03-29 06:40) [92]

Упс... сорри за дубль.


 
SkyRanger ©   (2006-03-29 09:16) [93]

Я "Чиста конкретна" никогда не гворил. Я вообще стараюсь избегать на форуме таких выражений и пальцезагибаний...
Я нигде не говрил о своей крутости и т.д.


 
Думкин ©   (2006-03-29 09:19) [94]

График - пресловутый.
Вы - реально решающий задачи программист.
В чем заминка?


 
Юрий Зотов ©   (2006-03-29 11:01) [95]

> SkyRanger ©   (29.03.06 09:16) [93]

"Чиста конкретна" - это я вставил в шутку. Возможно, неудачную.

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

Но график этот должен быть красивым. Не в смысле "с рюшечками, бантиками и всеми цветами радуги", а в смысле "хорошо соответствовать точкам".

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


 
isasa ©   (2006-03-29 12:29) [96]

Юрий Зотов ©   (29.03.06 11:01) [95]
Но график этот должен быть красивым. ... "хорошо соответствовать точкам".


:) т.е. "гладким"


 
Kerk ©   (2006-03-29 12:32) [97]

Юрий Зотов ©   (29.03.06 11:01) [95]
Докажите делом, не словами, что хотя бы для этой простейшей задачки математика действительно не нужна.


Задачка-то хоть и простая, но математическая. И решать математическую задачу без математики... хм.. очень смело. :)


 
isasa ©   (2006-03-29 12:40) [98]

Kerk ©   (29.03.06 12:32) [97]
Задачка-то хоть и простая, но математическая.


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

ЗЫ. Гладкая - имеющая непрерывную производную.


 
Jeer ©   (2006-03-29 12:54) [99]

isasa ©   (29.03.06 12:40) [98]

..существование и непрерывность производных до порядка r


 
isasa ©   (2006-03-29 12:59) [100]

Jeer ©   (29.03.06 12:54) [99]
..существование и непрерывность производных до порядка r

:) Для одного графика такой глубины не надо.


 
Jeer ©   (2006-03-29 13:05) [101]

Я на глаз замечаю негладкость по второй:)


 
Юрий Зотов ©   (2006-03-29 13:48) [102]

Точки взяты не с потолка. Грамотно подобранная аппроксимирующая функция непрерывна сама и имеет непрерывную производную бесконечного порядка (по крайней мере, при X > 0).


 
Юрий Зотов ©   (2006-03-29 13:58) [103]

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

А ведь задачка-то пустяковая - всего лишь график нарисовать. Что ж тогда говорить о более сложных?


 
Algol   (2006-03-29 14:08) [104]


> А ведь задачка-то пустяковая - всего лишь график нарисовать

Хех, пустяковая.... Мой отдел примерно год делал систему построения графиков...


 
Юрий Зотов ©   (2006-03-29 14:17) [105]

> Kerk ©   (29.03.06 12:32) [97]
> Задачка-то хоть и простая, но математическая.

Если решать ее так, как положено решать подобные задачи - то да, математическая. И тогда для ее решения нужно знать математику.

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

Уж не знаю, какой она тогда становится (логической? еще какой-то?), но ясно, что если для решения задачи математика не нужна, то и сама задача не математическая, это уж точно.

Что ж, как говорится - вперед, и с песней. Будем поглядеть, что из этого получится (если, конечно, вообще получится хоть что-нибуть путное).


 
Юрий Зотов ©   (2006-03-29 14:19) [106]

> Algol   (29.03.06 14:08) [104]

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


 
Думкин ©   (2006-03-30 07:07) [107]

Странно, что до сих пор не возник вопрос о некорректности. Но и результат не видно. :(


 
Юрий Зотов ©   (2006-03-30 22:45) [108]

> SkyRanger

Похоже, наша дискуссия завершилась естественным образом?
:о)

Ну так как, нужна программисту математика, или нет?

Если человек претендует на что-то большее, чем быть просто кодером (т.е., просто кодировать чужие алгоритмы), то все же нужна. И не только математика, знания в прикладных областях ему тоже совсем не помешают.


 
Jeer ©   (2006-03-31 13:51) [109]

Юрий Зотов ©   (30.03.06 22:45) [108]

Вероятно, SkyRanger отказывается решать некорретно поставленную задачу.:))


 
Sandman25 ©   (2006-03-31 14:11) [110]

Jeer ©   (31.03.06 13:51) [109]

Да еще и забесплатно.


 
Юрий Зотов ©   (2006-03-31 14:17) [111]

> Jeer ©   (31.03.06 13:51) [109]

Почему некорректно? Стандартная постановка задачи аппроксимации, что в ней некорректного?

Готов решить ее сам и рассказать весь ход решения. Тем самым доказав корректность постановки.


 
default ©   (2006-03-31 14:21) [112]

"ОК, пусть в результате некоторых измерений получилась вот такая кривая, заданная точками:"
никакая это не кривая, уже некорректность


 
Jeer ©   (2006-03-31 15:40) [113]

То, что задача решаема - мы с вами понимаем:)

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

- "Задача - построить красивый график этой кривой" - тут вообще не оговорено ничего, даже прохождение графика по точкам;
-"визуально гладкую,красивый график" - не математическая постановка;
-"и в единственном экземпляре" -бесконечно много, если не оговорены дополнительные условия;

Математики наверняка "наплюют" еще не одну тарелку:))

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


 
Jeer ©   (2006-03-31 16:03) [114]

Ну, а кроме шуток, если бы SkyRanger владел хотя бы математикой в объеме школьного курса, то задачку можно решить не прибегая к "великим сложностям".
Считать ли это арифметикой - не знаю.

Тот, кто чертил когда-либо карандашом с использованием лекал - знает правило вычерчивания гладких линий: по лекалу визуально соединяются три точки, но рисуется линия только между двумя.
Такое "кусочное" сшивание дает вполне "гладкий и красивый" результат.
Безусловно, там заложена математика, в лекале:))

Дальнейшее развитие такого метода - сплайны, но это уже вглубь.

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

В этом случае не нужны интерполяционные формулы в явном виде.

Да..
Если бы еще и SkyRanger хоть что-то написал из своих "безматематических" мыслей по этому поводу, но он отказывается от некорректных задач, очевидно:))


 
Юрий Зотов ©   (2006-03-31 18:09) [115]

> default ©   (31.03.06 14:21) [112]

Хочется надеяться, что Вам все-таки знаком математический термин, именуемый "таблично заданная функция".

> Jeer

Поиск математически строгого (тем более, единственного) решения задачей даже и не ставился (тем более, что оно, конечно же, не единственное).

Задачей ставилось просто-напросто нарисовать ЛЮБЫМ способом ЛЮБУЮ гладкую кривую, проходящую как можно ближе ко всем заданным точкам одновременно. Всего лишь.

И если кто-то сумеет написать программу, которая нарисует такую кривую и при этом не будет использовать математики сверх школьного курса - ОК, значит эту задачу действительно можно решить, не используя математики сверх школьного курса.

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

Точнее, такую программу нельзя написать за РАЗУМНОЕ время (за один день, например). А за полжизни, может быть, и можно.

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

А может, даже и быстрее получится.
:о)


 
Jeer ©   (2006-03-31 18:36) [116]

Юрий Зотов ©   (31.03.06 18:09) [115]

Вообще-то речь шла не о "кто-то", а о сомневающихся в необходимости владения математикой в процессах программирования.

То, что лично я могу "нарисовать" кучу "школьных" вариантов решения такой задачи - надеюсь, ты не сомневаешься:))


> за пару-тройку часов.


На "старость" фору даду:))


 
Jeer ©   (2006-03-31 18:37) [117]


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


Это уже корректировка постановки задачи и не один раз, причем.


 
default ©   (2006-03-31 18:53) [118]

Юрий Зотов ©   (31.03.06 18:09) [115]
таблично задана ф-ия, у неё есть график, но в моих понятиях график ф-ции не всегда есть кривая(чтобы была кривая надо кусочную непрерывность гарантировать хотя бы) а какая нафиг непрерывность для таблично заданной ф-ции?!:)

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


 
default ©   (2006-03-31 19:11) [119]

+[118]
конечно, нужно число сращиваемых кривых выбирать по числу точек
аппроксимирующие ф-ции можно брать полиномами(порядок их зависит от числа точек им накрываемых)


 
Юрий Зотов ©   (2006-03-31 19:29) [120]

> Jeer ©   (31.03.06 18:36) [116]

> То, что лично я могу "нарисовать" кучу "школьных" вариантов решения
> такой задачи - надеюсь, ты не сомневаешься:))

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

> На "старость" фору даду

Хех, вряд ли она потребуется. 2-3 часа - это вполне реальная оценка.

> default ©   (31.03.06 18:53) [118]

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

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

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


 
default ©   (2006-03-31 19:35) [121]

Юрий Зотов ©   (31.03.06 19:29) [120]
я имел ввиду как Jeer предлагал
например, через первые три точки проводим кусок параболы
решая систему трёх линейных уравнений с тремя неизвестными
(f(x)=ax^2+bx+c)
через следующие три точки(первая из которых является последней для первых трёх точек) проводим кусок кубического полинома
решая четыре линейных уравнения с четырьмя неизвестными
(f(x)=ax^3+bx^2+cx+d) чётвёртое уравнение это для равенства производных
далее, опять через следующие три точки кусок кубического полинома и тд
все операции школьные


 
TUser ©   (2006-03-31 19:54) [122]

Задача изначально ставилась - нарисовать красивую кривую по точкам. В этом задании никакой задачи (в математическом смысле) просто нет. Но такие задания дает сама жизнь, причем регулярно. Поэтому дальше следует формализация задачи, приведение ее к математически строгому виду. Не поверю, что Jeer или Юрий Зотов этого не понимают. Тогда о чем спор?


 
Юрий Зотов ©   (2006-03-31 21:26) [123]

> TUser ©   (31.03.06 19:54) [122]

Тоже не понимаю. Человек утверждал, что для рисования красивых графиков математика не нужна. Именно "красивый", это ЕГО слово, не мое.

ОК, ему именно такую задачу и предложили - вот тебе, мол, точки, нарисуй по ним красивый график. Любым способом, но чтобы было красиво. На глаз плавненько, на глаз гладенько. На глаз - и не более того. При том, что задача совершенно точно имеет решение, и даже много решений, выбирай любое, лишь бы красиво было.

НИ-КА-КОЙ формализации для этого АБ-СО-ЛЮТ-НО не требуется. Более того, кто знает, что такое аппроксимация/интерполяция, тот легко поймет, что задача поставлена совершенно корректно даже и в математическом смысле. Стандартная постановка - есть набор точек, по ним надо провести кривую, и вся любовь. Никаких ограничений, хошь - аппроксимируй (и пусть она себе на здоровье идет между точками), хошь - интерполируй (и пусть она себе на здоровье идет прямо по точкам).

Вообще, меня часто удивляют споры на этом форуме. Если сказать, что птицы летают, то тут же посыплется "а как же страусы?"; "а как же пингвины?"; "а вот куры летают, но плохо"; "а вот птицам подрезают крылья" - и т. д. Как будто непонятно, что человек имел в виду.

Воистину, прав анекдот - есть программисты (и, видимо, не только программисты), которые, ложась спать, ставят на прикроватный столик 2 стакана. Один с водой (если ночью захочется пить), другой пустой (если пить не захочется).

> All

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

Я же по-прежнему утверждаю (и готов доказать на деле), что с применением ВУЗовской математики эта задача легко решается за 2-3 часа.


 
TGX ©   (2006-04-01 00:10) [124]

Математика нужна всем, еслиб она бала не столь не обходима её б не преподавали в школах и вузах.... Многи из великих высказывались о математике не плохо! А программисту матиматика нужна тем более! Желательна вся... чем больше будет знать программер тем более глубже он будет мыслить и приходить к нужной цели за более короткий промежуток времени! Так что лучше учить, учить и ещё раз учить математику!


 
Petr V. Abramov ©   (2006-04-01 00:30) [125]

> аппроксимация/интерполяция
 а разве про это не рассказывают в старших классах, по верхам, ессно?


 
Юрий Зотов ©   (2006-04-01 00:49) [126]

> Petr V. Abramov ©   (01.04.06 00:30) [125]

Нам - не рассказывали. Сейчас, если и рассказывают, то не сомневаюсь, что НАСТОЛЬКО по верхам, что прилично аппроксимировать заданный набор точек - не получится. Только неприлично. :о)


 
Германн ©   (2006-04-01 02:47) [127]


> Юрий Зотов ©   (01.04.06 00:49) [126]
>
> > Petr V. Abramov ©   (01.04.06 00:30) [125]
>
> Нам - не рассказывали. Сейчас, если и рассказывают, то не
> сомневаюсь, что НАСТОЛЬКО по верхам, что прилично аппроксимировать
> заданный набор точек - не получится. Только неприлично.
> :о)
>

Подтверждаю, что и нам - не рассказывали.
Сейчас, если и твориться что, так это "уменьшение уровня" знаний. И опыта их применений.

Но стараюсь, поелико возможно, держать свою дщерь на "уровне". И подстёгиваю её стремления изучить что-то самостоятельно.


 
Думкин ©   (2006-04-01 05:58) [128]

> default ©   (31.03.06 18:53) [118]

Можно брать, но уже получится система ЛУ. А это уже - не школа.


 
Думкин ©   (2006-04-01 06:07) [129]

> Petr V. Abramov ©   (01.04.06 00:30) [125]

Насколько знаю - не рассказывают.

А провести кривую. Если речь о "программистах", то они могут решить так: из проги на Дельфи(например - не важно), подцепить Эксель, запихать точки и построить график подходящей категории. Полученный файл - выложить. Математики 0. Или пользуя TChart.
:о)
В общем ветка скучнее чем "про калькулятор" вышла.


 
isasa ©   (2006-04-01 11:15) [130]

default ©   (31.03.06 19:35) [121]
:)
Все уже украдено до нас.
Справочник по математике. Для инженеров и учвщихся втузов. Наука. 1986.

стр 504. п.7.1.2.6.2.Сплайн-интерполяция.
Самое оно. Удовлетворяет всем указанным(в самом начале)  условиям постановки. Остальное фантазии, для того, чтобы не делать.


 
isasa ©   (2006-04-01 11:33) [131]

TUser ©   (31.03.06 19:54) [122]
Совершенно верно.
По заданным точкам нарисовать график -> Через заданные точки( Pn(Xi)=Yi ) провести гладкую кривую. -> Интерполяция.(Обычная или сплайн)


 
Юрий Зотов ©   (2006-04-01 11:41) [132]

> isasa ©   (01.04.06 11:33) [131]

Либо аппроксимация, по собственному выбору. Тоже задача вполне понятна.


 
isasa ©   (2006-04-01 11:51) [133]

Юрий Зотов ©   (01.04.06 11:41) [132]
Аппроксимация, все-таки, требует дополнительных условий.
1. Уравнение кривой. (Чем "рисуем")
2. Метод получения коэффициентов( классический - наименьших квадратов, с учетом весов точек, или без ....)

Для графического отображения интерполяция самое оно. Я, например, не видел использования сплайна для аналитики заданного массива. Неудобно. Он, же "не сплошной" на весь диапазон (например, тот-же кубический из [130]).


 
Юрий Зотов ©   (2006-04-01 12:40) [134]

> isasa ©   (01.04.06 11:51) [133]

> 1. Уравнение кривой. (Чем "рисуем")
Чем угодно, на выбор, не оговаривалось. Естественно, простой полином будет явно нефизичен, но ведь существуют и методы подбора функций.

> 2. Метод получения коэффициентов.
Любой, тоже не оговаривалось. Лишь бы "красиво" получилось. :о)


 
isasa ©   (2006-04-01 14:56) [135]

Юрий Зотов ©   (01.04.06 12:40) [134]
Ну если так, тогда все условия созданы. Отговорки не принимаются. Подсказка, где искать мат. инструментарий есть. Вперед и с песней. :)

Единственное замечание. Задача, все-таки, выходит за рамки школьной программы. И тогда, когда я учился(ужас :) ), и сейчас, думаю так, потому что школьный курс математики со временем упростили(!! опять же, как никому не нужный!!!). Что не есть хорошо.


 
isasa ©   (2006-04-01 14:57) [136]

Юрий Зотов ©   (01.04.06 12:40) [134]
Ну если так, тогда все условия созданы. Отговорки не принимаются. Подсказка, где искать мат. инструментарий есть. Вперед и с песней. :)

Единственное замечание. Задача, все-таки, выходит за рамки школьной программы. И тогда, когда я учился(ужас :) ), и сейчас, думаю так, потому что школьный курс математики со временем упростили(!! опять же, как никому не нужный!!!). Что не есть хорошо.


 
isasa ©   (2006-04-01 15:03) [137]

Сорри за дубль. У меня летитошибка при отправке тем.

Home › Tools › Babel Fish Translation › Translation Error    

Error decoding translated text.

We"re sorry we"ve encountered an error with your request.
If you think this is a bug we should know about send us e-mail and let us know the following:

* What browser you were using.
* The operating system you are on.
* The type of translation you were trying when this error occurred.

The error encountered is:   157


 
Юрий Зотов ©   (2006-04-01 16:42) [138]

> isasa ©   (01.04.06 14:57) [136]
> Задача, все-таки, выходит за рамки школьной программы.

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


 
TUser ©   (2006-04-01 18:55) [139]


> НИ-КА-КОЙ формализации для этого АБ-СО-ЛЮТ-НО не требуется.
>  Более того, кто знает, что такое аппроксимация/интерполяция,
>  тот легко поймет, что задача поставлена совершенно корректно
> даже и в математическом смысле.

Извините, не согласен. Задача жизненная. А выбор метода - аппроксимация, интерполяция, Безье, сплайны или еще что-то - это уже и есть формализация. Более того, для разных задач разные методы будут хорошими.


 
Jeer ©   (2006-04-03 16:53) [140]

TUser ©   (01.04.06 18:55) [139]

>Извините, не согласен. Задача жизненная.

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

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

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

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

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

Вернемся, однако, к способу №1 и рассмотрим школьное решение.

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

Сначала постановка:

Уравнение кривой второго порядка в общем виде y = A*X^2 + B*X + C
У нас есть координаты трех точек, которые должны лечь на параболу X1,X2,X3,Y1,Y2,Y3

Образуется система уравнений (школьная программа)
Y1 = A*X1^2 + B*X1 + C
Y2 = A*X2^2 + B*X2 + C
Y3 = A*X3^2 + B*X3 + C

Школьники умеют ее решать не как СЛАУ через матрицы-определители (хотя и это тоже известно им), а методом последовательного исключения:
Находим выражение для С из ур-ния (3), подставляем в (2), находим B из (2) подставляем в (1)
После преобразований получаются уравнения для определения A,B,C
A = ((Y1-Y3)*(X2-X3) -(X1-X3)*(Y2-Y3)) /(X2-X3)*(X1-X3)*(X1-X2)
B = (Y2-Y3)/(X2-X3) - A*(X2+X3)
C = Y3 +X3*(A*X3+B)

После этого мы можем по уравнению  y = A*X^2 + B*X + C определять значения y по x, т.е. интерполировать между точками.

Для каждой новой тройки координат повторяются вычисления нового уравнения параболы (A,B,C) и рисуется кривая между точками.

Разумеется, этот вид интерполяции далек от совершенства, хотя и его можно улучшить (домашнее задание для желающих).
Тем не менее, для системы точек заданных Зотовым имеем вполне удовлетворительное решение.
Смотрим здесь:
Для Ю.З. http://hlab.newmail.ru/snap/snap-01.png
Для параболы http://hlab.newmail.ru/snap/snap-02.png
Для экспоненты http://hlab.newmail.ru/snap/snap-03.png
Для синусоиды http://hlab.newmail.ru/snap/snap-04.png
Для импульсного отклика звена второго порядка http://hlab.newmail.ru/snap/snap-05.png

Вуаля !

Код очень прост:

arX,arY: array of double;
// Решение для A,B,C. k - текущая точка
procedure SolveParabolic(k: integer; var vA,vB,vC: double);
var
 Y23, Y13: double;
 X12, X13, X23, XA23: double;
begin
 X12 := arX[k] - arX[k+1];
 X13 := arX[k] - arX[k+2];
 X23 := arX[k+1] - arX[k+2];
 XA23 := arX[k+1] + arX[k+2];
 Y23 := arY[k+1] - arY[k+2];
 Y13 := arY[k] - arY[k+2];
 vA := (Y13*X23 - X13*Y23)/(X23*X13*X12);
 vB := Y23 / X23 - vA * XA23;
 vC := arY[k+2] - arX[k+2] * (vA * arX[k+2] + vB);
end;

// Тело цикла

procedure btnRunClick(Sender: TObject);
var A,B,C, Xa, Ya: double;
   i,j,k: integer;
   Xsi,Xsii, Ys: integer;

begin
 Canvas.Pen.Color := clRed;
 Canvas.MoveTo(XW2S(arX[0]), YW2S(arY[0]));

 k := High(arX) - 2;
 for i:= 0 to k do begin
   SolveParabolic(i,A,B,C);
   Xsi := XW2S(arX[i]);
   if i < k then
     Xsii := XW2S(arX[i+1])
   else
     Xsii := XW2S(arX[i+2]); // дорисовывание до последней точки
   for j := Xsi to Xsii do begin
     Xa := XS2W(j);
     Ya := A*Xa*Xa + B*Xa + C;
     Ys := YW2S(Ya);
     Canvas.LineTo(j, Ys);
   end;
 end;
end;

//функции XW2S(),XS2W() - преобразование из "мировых" координат в экранные, не приведены, т.к. не существенно.


 
Юрий Зотов ©   (2006-04-04 02:13) [141]

> Jeer ©   (03.04.06 16:53) [140]

Согласен, это уже доказательство. Того, что:

1. Задачу действительно МОЖНО решить школьными методами.

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

ИМХО, из числа людей, чье математическое образование ограничивается только школой, п. 2 все же отвечают лишь очень немногие. Но таких людей значительно больше среди тех, чье математическое образование школой НЕ ограничивается. Так что даже и для данной задачи ВУЗовское образование все же весьма полезно.

P.S.
В твоем решении куски парабол не состыкованы по первой производной, т.е. при переходах через заданные точки будут изломы. В выбранном тобой масштабе изображения этого не заметно, то есть условия задачи действительно соблюдены - но если увеличить масштаб, то... сам понимаешь, уже "красиво" не будет и придется стыковать еще и производные. В итоге решение существенно усложняется, а возможно уже и начинает выходить за рамки школьной математики.


 
Юрий Зотов ©   (2006-04-04 02:29) [142]

> All

Видимо, пора раскрыть "секрет": при любом масштабе изображения кривая будет выглядеть "красиво", если заданные точки аппроксимировать функцией Y=A+B*(X+C)^D*exp(E*X)

Сразу возникает вопрос - а откуда это следует? Очень просто - из анализа заданных точек, из знания графика этой функции и из результатов проверки, действительно ли она подходит для аппроксимации этих точек. Проверка производится методом линеаризации и дает положительный результат. Коэффициенты A и C определяются сразу же, а для нахождения остальных остается лишь применить метод наименьших квадратов. Оба метода (и линеаризации, и наименьших квадратов) в школьную программу, насколько я знаю, не входят.


 
Юрий Зотов ©   (2006-04-04 02:39) [143]

И теперь, после всех этих дискуссий, хотелось бы спросить автора ветки: Вы по-прежнему убеждены, что программисту математика не нужна, или этот пример с "красивым" графиком все же как-то поколебал Ваше мнение?


 
Alx2' ©   (2006-04-04 08:44) [144]

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


 
Jeer ©   (2006-04-04 10:22) [145]

Юрий Зотов ©   (04.04.06 02:13) [141]

ч.т.д. :))


> 2. Школьными методами ее может решить человек, свободно
> этими методами владеющий.

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


> P.S.
В твоем решении куски парабол не состыкованы по первой производной


Это было оговорено выше - на точки "сшивания" не наложено никаких дополнительных условий, кроме совмещения координат.


> если заданные точки аппроксимировать функцией Y=A+B*(X+C)^D*exp(E*X)


Это задача регрессионного анализа и обычные школьники не знакомы с этими методами.

P.S.
Собственно говоря и пример Ю.Зотова, возможно с несколько "расплывчатой" постановкой и мои упражнения тут преследуют одну цель - показать, что одним "батонокидательством" и "размышлениями" на тему, что есть программист - программистом не стать без знания математики.


 
Думкин ©   (2006-04-04 10:31) [146]

> Jeer ©   (04.04.06 10:22) [145]

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


 
Jeer ©   (2006-04-04 10:34) [147]

Думкин ©   (04.04.06 10:31) [146]


> Если на точки сшивания, кроме совпадения координат


Не читаешь [140] - наложено условие - кривая втрого порядка - парабола + совпадение.
Там же и сказано - основа сплайн-метода - композитный полином.


 
Думкин ©   (2006-04-04 10:38) [148]

> Jeer ©   (04.04.06 10:34) [147]

Тогда - выходит.


 
Jeer ©   (2006-04-04 10:51) [149]

Думкин ©   (04.04.06 10:31) [146]

> Школьник решить может - но это ВНЕ школьной программы и


Вероятно, в наше время 63-73 были другие "обычные" школьники, которые
почитывали Перельмана, Магницкого, Адамара, Болтянского с Ягломом, а на закуску Клейна, Колмогорова и Радемахера с Теплицем.


 
isasa ©   (2006-04-04 10:59) [150]

Jeer ©   (04.04.06 10:51) [149]
...которые почитывали Перельмана, Магницкого, Адамара, Болтянского с Ягломом, а на закуску Клейна, Колмогорова и Радемахера с Теплицем.


:)
не, ну это перебор. Не поверю, что 17-летний пацан все это читает. Одного двух авторов - да, но всех - это мат-маньяк какой-то :)


 
Jeer ©   (2006-04-04 11:10) [151]

isasa ©   (04.04.06 10:59) [150]

:))
Ага, маньяками и были.
Строили телескопы, яхты, были радиолюбителями и все сразу.


 
Jeer ©   (2006-04-04 11:12) [152]

Да, еще забыл - заканчивали 10-ку по классу фоно и тоже сразу:)))


 
Думкин ©   (2006-04-04 12:24) [153]

> Jeer ©   (04.04.06 10:51) [149]

Вот тут ты прав. Сдаюсь.



Страницы: 1 2 3 4 вся ветка

Форум: "Прочее";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.96 MB
Время: 0.014 c
15-1144144659
__DATA__
2006-04-04 13:57
2006.04.23
WEB Страничка с запросом пароля


15-1143789126
Курдль
2006-03-31 11:12
2006.04.23
Можно ли писать на Kylix под Solaris?


15-1144273946
Yegorchic
2006-04-06 01:52
2006.04.23
Файл и папка


15-1143933498
Лайт
2006-04-02 03:18
2006.04.23
Как оптимально вписать массив треугольников в прямоугольник?


15-1144070066
syte_ser78
2006-04-03 17:14
2006.04.23
Программа учета времени в инете при диалап подключении





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский