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

Вниз

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

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

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



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

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

Наверх




Память: 0.72 MB
Время: 0.022 c
4-1138944740
dreamse
2006-02-03 08:32
2006.04.23
Проблема с MsGina.dll


6-1136735022
Цукор5
2006-01-08 18:43
2006.04.23
WSACleanup


2-1144320701
half_litre
2006-04-06 14:51
2006.04.23
флаг Break on exception в Delphi 7


15-1143717339
grisme
2006-03-30 15:15
2006.04.23
Московский Ун. Дружбы народов


3-1141126420
RomanH
2006-02-28 14:33
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский