Кирьянов Д. - MathCad 11 (1077323), страница 43
Текст из файла (страница 43)
1 (10%).П mirr (v, f in_rate, rein_rate) — соответствует модифицированной процентной ставке возврата для серии денежных потоков с регулярнымиинтервалами при условии, что ставка финансирования подлежит оплатев соответствии с суммой заимствования, а ставка реинвестированияприносит доход с суммы, которую Вы повторно инвестируете;264Часть III, Численные методы• v — вектор денежных потоков, определяемых за регулярные интервалы; он должен состоять по крайней мере из одного положительного иотрицательного числа;•fin_rate — финансовая ставка платежа по заимствованным денежным потокам;• rein_rate — ставка реинвестирования.•nom (rate, nper) — соответствует номинальной процентной ставке,включающей эффективную ежегодную процентную ставку и число составных периодов за год;• r a t e — эффективная ежегодная процентная ставка; должна быть действительным скаляром, rate>-i;• nper — общее число составных периодов за год, прег>о.Пnpv{rate,v) — вычисляет чистое текущее значение вклада, включающеескидки и регулярные денежные потоки;• r a t e — фиксированная процентная ставка, с которой вклад зарабатывает процент за период; должна быть действительным скаляром;• v — вектор регулярных денежных потоков.Gnper ( r a t e , pmt,pv, [ [fv], [type] ]) — отвечает числу периодов для вклада или заема, основанных на периодичности, постоянных платежах, использующих фиксированную процентную ставку и особое текущее значение;• pmt (rate, nper, pv, [ [fv], [type] ]) — соответствует платежу по вкладуили заему, основанному на периодичности, постоянных платежах черезданное число составных периодов, использующих фиксированную процентную ставку и особое текущее значение;Gppmt ( r a t e , p e r , n p e r , pv, [ [ f v ] , [ t y p e ] ] } —соответствуетплатежупообщей сумме вклада или заема, основанному на периодичности, постоянных платежах через данное число составных периодов, использующихфиксированную процентную ставку и особое будущее значение;•pv(rate,nper,pmt, [ [fv], [type] ]) — соответствует текущему значениювклада или заема, основанному на периодичности, постоянных платежахчерез данное число составных периодов, использующих фиксированнуюпроцентную ставку и особый взнос;• rate(nper, pmt, pv, [ [fv] , [type] , [guess] ]) — соответствует ПрОЦеНТной ставке на период вклада или заема при особом числе периодическихсоставных периодов, постоянных платежах и особом текущем значении;• r a t e — фиксированная процентная ставка;• per — период;Глава 10.
Специальные функции265• прег — общее число составных периодов за год; должно быть положительным целым числом;• pmt — платеж, делаемый каждый период;• pv — текущее значение вклада;•fv — будущее значение вклада;• type=o для платежа, сделанного в конце периода, или 1 для платежа,сделанного в начале периода;• guess — численное значение, которым Вы предполагаете аппроксимировать ответ; если им пренебрегается, то guess=o.oi(io%).ГЛАВА 11ОбыкновенныедифференциальныеуравненияДифференциальные уравнения — это уравнения, в которых неизвестными являются не переменные (т. е. числа), а функции одной или нескольких переменных.
Эти уравнения (или системы) включают соотношения между искомыми функциями и их производными. Если в уравнения входят производныетолько по одной переменной, то они называются обыкновенными дифференциальными уравнениями (далее чаше используется сокращение ОДУ). В противном случае говорят об уравнениях в частных производных (см. гл. 13). Такимобразом, решить (иногда говорят проинтегрировать) дифференциальное уравнение — значит определить неизвестную функцию на определенном интервале изменения ее переменных.Как известно, одно обыкновенное дифференциальное уравнение(см. разд.
Л.1—11.2) или система ОДУ (см. разд. 11.3) имеет единственноерешение, если помимо уравнения определенным образом заданы начальныеили граничные условия. В соответствующих курсах высшей математики доказываются теоремы о существовании и единственности решения в зависимости от тех или иных условий. Имеются два типа задач, которые возможнорешать с помощью Mathcad 11:П задачи Коши — для которых определены начальные условия на искомыефункции, т. е. заданы значения этих функций в начальной точке интервала интегрирования уравнения;П краевые задачи — для которых заданы определенные соотношения сразуна обеих границах интервала (они рассматриваются в гл.
12).Как правило, решение задач Коши для ОДУ и их систем — задача хорошоразработанная и с вычислительной точки зрения не слишком сложная.Большое значение здесь имеет представление результатов и анализ зависи-268Часть III. Численные методымостей решения от различных параметров системы (см. разд. 11.4). Междутем, имеется целый класс ОДУ, называемых жесткими, который не поддается решению стандартными методами, типа методов Рунге-Кутты. Для нихв Mathcad имеются специальные возможности (см. разд.
11.5).11.1. ОДУ первого порядкаДифференциальное уравнение первого порядка может по определению содержать, помимо самой искомой функции y{t), только ее первую производную y ' ( t ) . В подавляющем большинстве случаев дифференциальноеуравнение можно записать в стандартной форме (форме Коши):у1 (t)=f( y ( t ) ,t) ,(1)и только с такой формой умеет работать вычислительный процессор Mathcad.Правильная с математической точки зрения постановка соответствующейзадачи Коши для ОДУ первого порядка должна, помимо самого уравнения,содержать одно начальное условие — значение функции y(t 0 ) в некоторойточке t 0 .
Требуется явно определить функцию y(t) на интервале от t 0 до t1.По характеру постановки задачи Коши называют еще задачами с начальнымиусловиями (initial value problem), в отличие от краевых задач.Для численного интегрирования одного ОДУ у пользователя Mathcad 11(начиная с версии Mathcad 2000 Pro) имеется выбор — либо использоватьвычислительный блок Given/odesoive, либо встроенные функции, как впрежних версиях Mathcad. Первый путь предпочтительнее из соображенийнаглядности представления задачи и результатов, а второй дает пользователю больше рычагов воздействия на параметры численного метода.
Рассмотрим последовательно оба варианта решения.11.1.1. Вычислительный блок Given/OdesolveВычислительный блок для решения одного ОДУ, реализующий численныйметод Рунге-Кутты, состоит из трех частей:О Given — ключевое слово;•ОДУ и начальное условие, записанное с помощью логических операторов, причем начальное условие должно быть в форме y(to)=b;•odesoive(t, t i ) — встроенная функция для решения ОДУ относительнопеременной t на интервале ( t o , t i ) .ПримечаниеДопустимо,идажечастопредпочтительнее,заданиефункцииOdesolve (t, t 1 , step) с тремя параметрами, где step— внутренний параметрчисленного метода, определяющий количество шагов, в которых метод Рунге-Глава 11. Обыкновенные дифференциальные уравнения269Кутты, будет рассчитывать решение дифференциального уравнения.
Чембольше step, тем с лучшей точностью будет получен результат, но тем большевремени будет затрачено на его поиск. Помните, что подбором этого параметраможно заметно (в несколько раз) ускорить расчеты без существенного ухудшения их точности.2Пример решения задачи Коши для ОДУ первого порядка У ' = у - у посредством вычислительного блока приведен в листинге 11.1.| Листинг 11.1. Решение задачи Коши для ОДУ первого порядкаGiven—у (t)dtу(0)= у ft)- у (t)2=0.1у := O d e s o l v e { t , 10 )Не забывайте о том, что вставлять логические операторы следует при помощи панели инструментов Boolean (Булевы операторы). При вводе с клавиатуры помните, что логическому знаку равенства соответствует сочетание клавиш <Ctrl>+<=>.
Символ производной можно ввести каксредствами панели Calculus (Вычисления), как это сделано в листинге 11.1, так и в виде штриха, набрав его с помощью сочетания клавиш<Ctrl>+<F7> (соответствующий пример будет приведен ниже в листинге 11.3.) Выбирайте тот или иной способ представления производной изсоображений наглядности представления результатов — на ход расчетов онне влияет.Mathcad требует, чтобы конечная точка интегрирования ОДУ лежала правееначальной: to<ti (в листинге 11.1 to=o,ti=io), иначе будет выдано сообщение об ошибке.
Как можно заметить, результатом применения блокаGiven/odesolve является функция у {t), определенная на промежутке< t o , t i ) . Следует воспользоваться обычными средствами Mathcad, чтобыпостроить ее график или получить значение функции в какой-либо точкеуказанного интервала, например: у(3) =0.691.Пользователь имеет возможность выбирать между двумя модификациямичисленного метода Рунге-Кутты.
Для смены метода необходимо нажатиемправой кнопки мыши на области функции odesolve вызвать контекстноеменю и выбрать в нем один из двух пунктов: Fixed (Фиксированный шаг)или Adaptive (Адаптивный). По умолчанию применяется первый из них, т. е.метод Рунге-Кутты с фиксированным шагом. Подробнее о различии этих методов сказано в разд. 11.3.270Часть III. Численные методы11.1.2. Встроенные функции rkfixed, Rkadapt,BulstoerАльтернативный метод решения ОДУ перешел из прежних версий Mathcad.Он заключается в использовании одной из встроенных функций rkfixed,Rkadapt или Bulstoer. Этот способ несколько проифывает первому и впростоте, и в наглядности. Поэтому я советую предпочесть вычислительныйблок Given/odesoive. Однако иногда приходится решать ОДУ первого порядка с помощью второго способа, например, при следующих обстоятельствах:П одно ОДУ решается в контексте решения более сложных задач, в которые входят системы дифференциальных уравнений (для которых вычислительный блок неприменим) — в этом случае может потребоватьсяединый стиль программирования;G ответ предпочтительнее получить в виде вектора, а не функции;О Вы привыкли к записи ОДУ в старых версиях Mathcad, у Вас много документов, созданных с их помощью и т.