Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
05.06.2015
Размер:
163.3 Кб
Скачать

Кучеренко Антон МП-18

MIET

Matlab. Лабораторная работа 9. Производные высших порядков. Формула Тейлора

Упражнение 1.

Вычислить значения полинома в точках Значения аргументов задать в виде вектора. Сохранить значения полинома.

>> p=[1 0 0 -3.2 0 3 0 3];

>>a=[-1 4 2.2 pi];

>>y=polyval(p,a)

y=

1.0e+004 *

0.0002 1.5616 0.0192 0.2741

Упражнение 2.

Вычислить корни полинома сохранить их, сделать проверку.

p=[2 0 0 -3 0 0 7 0 -2];

>> y=roots(p)

y =

-0.9586 + 0.7952i

-0.9586 - 0.7952i

-0.1514 + 1.2536i

-0.1514 - 1.2536i

1.0927 + 0.4678i

1.0927 - 0.4678i

-0.5179

0.5525

>>poly(roots(p))

ans =

1.0000 0.0000 0.0000 -1.5000 -0.0000 -0.0000 3.5000 0.0000 -1.0000

коэффициенты пропорциональны первоначальным.

Упражнение 3.

Вычислить произведение полиномов и и частное и остаток от деления на

p=[1 2 0 0 -3 0 4]; q=[1 0 -3 1];

>>conv(p,q)

ans =

1 2 -3 -5 -1 0 13 -3 -12 4

>>deconv(p,q)

ans =

1 2 3 5

Упражнение 4.

Написать файл-функцию с двумя аргументами, осуществляющую сложение полиномов разной степени. Алгоритм:

  1. Найти большую из длин входных аргументов (обозначим её

  2. Создать вспомогательные векторы длины представляющие те же самые полиномы, что и аргументы. Для заполнения части элементов нулями можно использовать функцию zeros.

  3. Вычислить сумму.

M-File:

function f=summ(p,q)

a=length(p);b=length(q);

if a>b

m=q;

n=p;

elseif a<b

m=p;

n=q;

else

m=p;

n=q;

end

r=ones(1,abs(a-b));

y=[zeros(size(r)),m];

f=n+y;

>>summ(h,a)

ans =

7 8 2 4 6

Упражнение 5.

Для многочленов и найти их производные, производную произведения и частного.

>> p=[1 -1 0 -3 0 -2];q=[1 0 0 0 0 -3 1];

>> x=polyder(p)

x =

5 -4 0 -6 0

>> x=polyder(q)

x =

6 0 0 0 0 -3

>>polyder(p,q)

ans =

11 -10 0 -24 0 -30 20 -4 27 -6 6

>> [a b]=polyder(p,q)

a =

-1 2 0 12 0 0 14 -4 9 -6 -6

b =

1 0 0 0 0 -6 2 0 0 0 9 -6 1

Упражнение 6.Создать файл-функцию, вычисляющую производную порядка n полинома k, заданного вектором коэффициентов, в виде полинома, заданного вектором коэффициентов. С помощью созданной функции вычислить 5-ую производную полинома и её значение в точке 0,2.

p=[1 0 0 -1 0 0 0 0 3 0 -2];

>>fun3(p,5,0.2)

ans =

-91.1232

M-File:

function f=fun3(p,n,a)

fori=1:1:n

p=polyder(p);

end

f=polyval(p,a);

Упражнение 7.

Создать М-файл, вычисляющий значения коэффициентов (в виде вектора) в формуле Тейлора для полинома произвольной степени в произвольной точке. С помощью созданной функции вычислить коэффициенты для разложений полинома по степеням и Построить в одном графическом окне графики и полиномов с коэффициентами, равными для двух разложений. Сделать вывод.

>> fun4(p)

a =

1 6 17 28 27 11 -2

b =

1 -12 62 -176 288 -259 100

На рисунке изображено 3 графика функций, заданных:

1)исходным полиномом «синий»;

2)Полиномом, полученным при разложении исходного на степени (х-1) по формуле Тейлора «зелёный»;

3)Полиномом, полученным при разложении исходного на степени (х+2) по формуле Тейлора «красный»;

Графики наслоились друг на друга. Это говорит о том, что хоть функции имеют разный вид, но они, по сути, идентичны.

M-File:

function f=fun4(p)

x0=[1 -2];

n=length(p);

a=zeros(1,n);

b=a;

a(n)=polyval(p,x0(1));

b(n)=polyval(p,x0(2));

for i=n-1:-1:1

p=polyder(p);

a(i)=polyval(p,x0(1))/factorial(n-i);

b(i)=polyval(p,x0(2))/factorial(n-i);

end

a

b

figure

hold on;grid on; line([-10 0;10 0],[0 -10;0 10],'color','black');

set(ezplot('x^6+2*x^4-3*x-2',[-10 10 -10 10]),'color','blue','linewidth',4)

x=-6:0.01:6;

y=polyval(a,x-1);

plot(x,y,'r-','linewidth',3)

y=polyval(b,x+2);

plot(x,y,'g-','linewidth',3)

Соседние файлы в папке Математический Анализ_1