Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
цос / Лаб_раб_ №1.doc
Скачиваний:
75
Добавлен:
02.02.2015
Размер:
258.05 Кб
Скачать

1.3 Функции прикладной численной математики

1.3.1. Операции с полиномами

В системе MatLAB предусмотрены некоторые дополнительные возможности математического оперирования с полиномами. Полином (многочлен) как функция определяется выражением:

P(x)= a n · x n +... +a2 ·x2+ a1 ·x+ a0

В системе MatLAB полином задается и сохраняется в виде вектора, элементами которого являются коэффициенты полинома от an до a0 в указанном порядке:

P = [an ... a2 a1 a0 ] .

Введение полинома в MatLAB осуществляется так же, как и ввод вектора длиной n+1, где n - порядок полинома.

Умножение полиномов. Произведением двух полиномов степеней n и m соответственно, как известно, называют полином степени n+m, коэффициенты которого определяют простым перемножением этих двух полиномов. Фактически операция умножения двух полиномов сводится к построению расширенного вектора коэффициентов по заданным векторам коэффициентов полиномов-сомножителей. Эту операцию в математике называют сверткой векторов (а сам вектор, получаемый в результате такой процедуры - вектором-сверткой двух векторов). В MatLAB ее осуществляет функция conv(P1, P2).

Аналогично, функция deconv(P1, P2) осуществляет деление полинома P1 на полином P2, т. е. обратную свертку векторов P1 и P2. Она определяет коэффициенты полинома, который является частным от деления P1 на P2.

Пример:

» p1 = [1,2,3]; p2 = [1,2,3,4,5,6];

» p = conv(p1,p2)

p = 1 4 10 16 22 28 27 18

» deconv(p,p1)

ans = 1 2 3 4 5 6

В общем случае деление двух полиномов приводит к получению двух полиномов - полинома-результата (частного) и полинома-остатка. Чтобы получить оба этого полинома, следует оформить обращение к функции таким образом:

[Q,R] = deconv(B,A) .

Тогда результат будет выдан в виде вектора Q с остатком в виде вектора R таким образом, что будет выполненное соотношение

B = conv(A,Q) + R.

Система MatLAB имеет функцию roots(P), которая вычисляет вектор,элементы которого являются корнями заданного полинома Р.

Пусть нужно найти корни полинома:

P(x) = x5 + 8x4 + 31x3 + 80x2 + 94x + 20.

Ниже показано, как просто это сделать:

» p = [1,8,31,80,94,20]; » disp(roots(p))

-1.0000 + 3.0000i

-1.0000 - 3.0000i

-3.7321

-2. 0000

-0. 2679

Обратная операция - построение вектора р коэффициентов полинома по заданному вектору его корней - осуществляется функцией poly: p = poly(r).

Здесь r - заданный вектор значений корней, p - вычисленный вектор коэффициентов полинома. Приведем пример:

» p = [1,8,31,80,94,20]

p = 1 8 31 80 94 20

» r = roots(p)

r =

-1.0000 + 3.0000i

-1.0000 - 3.0000i

-3.7321

-2. 0000

-0. 2679

» p1 = poly(r)

p1 =8. 0000 31. 0000 80. 0000 94. 0000 20. 0000

Заметим, что получаемый вектор не показывает старшего коэффициента, который по умолчанию полагается равным единице.

2. Программирование в среде MatLab

2.1 Операторы цикла и условные операторы

Организация циклов в Matlab осуществляется с помощью операторов for и while. Оператор цикла for обеспечивает повтор группы ко­манд,заключенных между операторами for и end,заданное число раз. Например, последовательность команд:

y=zeros(1,m); % предварительное обнуление вектора y

for

i=1:m;

j=1:i;

fact=prod(j);

y(i)=x.^i/fact;

end;

y=y

позволяет сформировать m-мерный вектор y ,каждый i-ый элемент которого определяется выражением y(i)=x^i/i!, i=1,2,...,m.

Циклы могут быть вложенными, при этом каждый оператор for должен быть согласован с оператором end.

Цикл while дает возможность повторять группу операторов до тех пор, пока выполняется логическое условие. Последнее задается логическими операторами вида:

< меньше чем ;

<= меньше или равно;

> больше чем;

=> больше или равно ;

== равно ;

~= не равно .

Окончанием действия оператора while служит end.

Например, последовательность команд y=zeros(1,m);

i=1;

while i < m

j=1:i;

y(i)=x.^i/prod(j);

i=i+1;

end ;

y=y

позволяет вычислить описанный выше m-мерный вектор y.

Конструкция условного выражения в общем случае имеет вид:

Соседние файлы в папке цос