Главная » Просмотр файлов » Гурский Д., Турбина Е. - Вычисления в MathCad 12

Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 73

Файл №1077322 Гурский Д., Турбина Е. - Вычисления в MathCad 12 (Гурский Д., Турбина Е. - Вычисления в MathCad 12) 73 страницаГурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322) страница 732018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 73)

Аналогично тому, как функция считается равной нулю, если ее величина по модулю меньше TOL,так и ограничивающее неравенство будет считаться соблюденным, если отклонение отнего не превышает определенного порога. Порог этот задается специальной системнойконстантой CTOL (Constraint Tolerance — Точность ограничения). К примеру, приСТ01.= 10~3неравенство х>5 окажется невыполненным, если х=5,099. По умолчанию CTOLравняется 10~3, ее предельная величина — 10 17. Задать ее можно точно так же, как TOL:переопределением на рабочем поле или открыв вкладку Build-in Variables (Встроенныепеременные) окна Worksheet Options (Параметры документа).

Менять CTOL в сторонууменьшения нужно тогда, когда результат должен быть получен с максимальной точностью. Однако нужно учитывать, что при этом может возрасти время расчета вплотьдо того, что система посчитает, что корня не существует. Поэтому стоит воздержатьсяот «профилактического» присваивания CTOL предельного значения.Довольно очевиден следующий вывод: простые уравнения и системы лучше решатьсимвольно, более сложные — численно. Вообще, численные методы куда более универсальны и надежны.

Однако у них есть один весьма существенный недостаток: корниопределяются не точно, а с заданной погрешностью вычислений. Предельно высоким|516уровнем точности работы функции find является 10 -10" . Для очень многих практически важных задач такой точности явно недостаточно.

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

Поэтому, при использовании численных методов, оно зачастую просто округляется до нуля. А так как рН —+это отрицательный десятичный логарифм от концентрации Н , то вполне понятно, чтопри таком округлении его значение правильно вычислено быть не может. Если же длярешения этой задачи использовать символьный процессор, то ответ будет найден безкаких-либо трудностей. Это связано с тем, что символьный процессор при приблизительном решении систем алгебраических уравнений использует арифметику длинныхмантисс и предельный уровень точности увеличивается до 10~20. Однако, увы, такойподход применим только к простейшим, алгебраическим системам.В следующем примере предложено решение подобной задачи.

Изучив его, вы поймете преимущество используемой символьным процессором арифметики длинныхмантисс, а также важность верного выбора численного метода. Если вы не владеете элементами химии, то просто рассмотрите решение данной системы с точки зрения трудностей, которые могут возникнуть при малой величине параметров или корней уравнений.Пример 8.33. Определение рН миллимолярного раствора гидрофосфатанатрияНачальные условия (к, — константа диссоциации гидрофосфата, к2 — дигидрофосфата, ки.

— константа диссоциации воды, С — концентрация гидрофосфата):K 3 :=4.8-1013.-14к 2 :=6.2-10С:=10-3Приближения для численного метода (z — концентрация фосфата, у — гидрофосфата, х — дигидрофосфата, о — ОН', h — Н + ):z:= 0о := 0h := 0х := 0у := ОРешение системы уравнений, описывающей происходящие процессы диссоциации и гидролиза:Giveno-h = k-=wx+y + z = Cx+2y+3z-o-2C=0Ответ численного метода, использующегося по умолчанию (неверный в рамках рассматриваемойзадачи):,-4З.ЗЗЗхЮ.-43.519x10find(x,y,z,o,h) =.-43.148x10-1.852x1v0-5\8.2.

Решение систем уравнений* 317Ответ метода Левенберга (точность в рамках данной задачи приемлемая):.-44.842x10.-61.389x10find(x,y,z,o,h) =—45.144x10г-53.013x10-101.778x10Решение символьного процессора (наиболее точное):5.3152187228378056243 -10-1.3905082583061470611fnd(x,y,z,o,h)-410~ 64.6986863597452558463 • 10~ 4-6.165323630925497779110~5-1.6219748708469446330 10"'°9.967676533828310467610-44.718737001435861О878 10-1.6184142415843580576 • 10~ 71.3871883846497920911 -10~ 63.394188O41327389O456 \0~65.2673911147176409913 - Ю " 4-9.9337346534150365771 • 10~ 45.4865411328177990344 -10~5-1.00667О7385386202768 - 1 0 " "1.8226419447008066607 - 1 0 " 1 0Определение рН:рН := log (l .8226419447008066607-10~10)pH = 9.739Правильный выбор используемого метода играет первостепенную роль для верногои легкого решения уравнения или системы уравнений.

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

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

В точке, в которой касательная пересекает ось X, вычисляется значение функции. Если оно меньше (по модулю) установленного минимума точности TOL, то данная точка определяется как корень. В противном случае через точку функции, которая соответствует полученному приближению,3 1 8 •:• Глава 8. Решение уравнений и систем уравненийпроводится вторая касательная. Точка ее пересечения с осью X определяется как второе приближение. Если значение f(x) в ней больше по модулю, чем TOL, проводится третьякасательная.

И так далее до тех пор, пока условие корня не будет выполнено (рис. 8.13).Рис. 8.13. Иллюстрация метода Ньютона. Достаточное приближение к корню достигаетсяна пятой итерацииТеперь, зная идею метода Ньютона, попробуем самостоятельно написать программупоиска корней нелинейных уравнений. Для этого сначала следует решить проблемычисто технического плана: во-первых, нужно придумать, каким образом мы будем проводить касательные через точки приближений, и, во-вторых, как затем находить точкиих пересечения с осью X.В общем случае условие пересечения прямой линии (каковой и является касательная)с осью X можно определить как:k-x+b = 0Из этого уравнения требуется найти х, однако чтобы это сделать, нужно знать величины констант к и Ь.

Определить одну из них предельно просто: ведь, как известно, к численно равна тангенсу угла наклона прямой к оси X. В случае же касательной тангенсэтот равен значению производной функции в точке касания. То есть:dxЗная к, можно очень легко найти и Ь, исходя из того факта, что в точке касания значения функции касательной и исследуемой функции совпадают. То есть:^ f (vx n /) . x n + b = f ( x n )'dxВыражаем b:Подставляем полученные выражения для констант в первую формулу:if(xn).(x-xn)+f(xn)=08.2.

Решение систем уравнений • 3 1 9Из этого простого уравнения с одним неизвестным находим требуемую точку пересечения касательной с осью X:х=хп-<»•)dxДанная формула носит название формулы Ньютона. Зная ее, реализовать соответствующий численный метод предельно просто:Newton(f,a,TOL) :=(п <- 0х <- а |df(x)<--fl:x)dxwhile 1х <— х + TOL on error 1 + dfnc |nn\njx - ffx V df(xn+1return (xn n j if f(xn)|<TOLA \ffo-f ^< TOLreturn error("Dont con\ergeto a solution!" ) if n > 100В коде программы Newton есть несколько тонкостей, которые стоит прокомментировать.О Производную от f(x) необходимо задать как локальную функцию df(x).

Это связано с тем, что если использовать оператор дифференцирования в выражении, соответствующем формуле Ньютона, напрямую, то возникнет ошибка (так как системавоспримет f(xn) как постоянную величину, а не функцию от х).•Если очередное приближение совпадет с экстремумом, то возникнет ошибка деления на нуль.

Обойти эту проблему просто. Для этого нужно, при возникновенииошибки, прибавить к текущему приближению небольшую величину (например,TOL). Точка нового приближения сместится в сторону от точки экстремума, и поэтому значение производной в ней уже не будет равно нулю.• Метод Ньютона является локально сходящимся. Это означает, что то, сойдется онк корню или нет, зависит от правильности выбора начального приближения. Важнопредусмотреть ситуацию, в которой неудачное приближение породит расходящуюся последовательность приближений.

Характеристики

Тип файла
PDF-файл
Размер
47,8 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее