Когда MathCAD "не считает правильно"...
По итогам случайного обсуждения... когда MathCAD (численные методы, компьютерные вычисления) "не считают правильно" - так вопрос ставить неверно.
Верно так: при каких идеализированных условиях все эти численные методы всё же работают? :)
Корректно эти условия определить и есть задача вычислителя или программиста.
То есть, не пойти по заведомо неверному американско-бакалаврскому пути априорного доверия к любому бреду, выдаваемому компьютером.
В основном, избежать этого помогают 2 принципа:
1. Не пытаться решать нерешаемое.
2. Понимать, что компьютер именно "решит" вам нерешаемое, выдав бредовый ответ, так как с определением "решаемости" у него проблемы. Верней, у него-то проблем нет, это проблемы у нас, если мы сами не понимаем задач, которые перед ним ставим. В последнем случае у нас выйдет "реформа образования", а не решение.
Маленький пример. Человек пытается найти в MathCADe "точку пересечения 2 графиков" - и даже нечто находит:

"пересечение"
Если даже совсем не подумать, можно обратить внимание, что обе функции симметричны относительно оси 0Y
. При этом найденные численно "левая" и "правая" точки пересечения графиков отличаются почти на 20%
Если подумать совсем чуть-чуть, решения уравнения y1(x)=y2(x)
, очевидно, и не существует, ведь каким бы ни был x
, x2-4
уж точно не равно x2-25
, а следовательно, не равны и корни из этих чисел... но компьютер, как трудолюбивый идиот, будет это несуществующее решение искать, упираясь в какой-нибудь предел счёта... "из лжи следует всё, что угодно".
Ещё одним примером неправильного подхода к решению подобных проблем был бы перебор с поиском "минимума разницы" между значениями y1
и y2
:

а здесь "пересечение" ищется программно
Здесь очевидно, что с ростом абсолютного значения аргумента уменьшается и модуль разности между y1
и y2
, так что "ответом" функции всегда будет ближайшее к пределу перебора значение аргумента.
Наконец, символьный подход может обнадёжить чуть больше. Он даже скажет, что решения нет (внизу второго рисунка).
02.12.2014, 17:22 [11465 просмотров]