Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Программирование в среде Maple


В начало книги

 

Предметный указатель

Процедурное программирование. Ньютоновская итерация
К предыдущему разделуК следующему разделу

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

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

> restart; NewtonIteration:=proc(expr::algebraic,x::name)
local iteration;
iteration:=x-expr/diff(expr,x);
unapply(iteration,x);
end;

[Maple Math]
[Maple Math] [Maple Math]

Чтобы получить функцию по заданному выражению в процедуре применена команда unapply.

В качестве примера возьмем выражение.

> expr:=x*sin(x)-sqrt(x);

[Maple Math]

График его изображен на рис. 69.

> plot(expr,x=-1..10);

[Maple Plot]

Рис. 69

Применим процедуру

> Form:=NewtonIteration(expr,x);

[Maple Math]

Зададим начальное значение переменной

> x0:=9.0;

[Maple Math]

и найдем несколько Ньютоновских итераций

> to 4 do x0:=Form(x0);od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

Мы видим, что значение x0 очень быстро приближается к значению корня функции.

Можно эту же процедуру записать в виде, когда формальным параметром процедуры является также процедура

> restart;NewtonIteration:=proc(f::procedure)
(x->x)-f/D(f);
end;

[Maple Math]

> g:= x-> x*sin(x)-sqrt(x);

[Maple Math]

> Form2:=NewtonIteration(g);

[Maple Math]

> x0:=9.0;

[Maple Math]

> to 4 do x0:=Form2(x0) od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

В начало страницы К предыдущему разделуК следующему разделу

Предметный указатель

| На первую страницу | Поиск | Купить Matlab

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


Copyright © 1993-2024. Компания Softline. Все права защищены.

Дата последнего обновления информации на сайте: 04.03.17
Сайт начал работу 01.09.00