1 семестр / Математический Анализ_1 / Кучеренко_92
.docx
Кучеренко Антон МП-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.
Написать файл-функцию с двумя аргументами, осуществляющую сложение полиномов разной степени. Алгоритм:
-
Найти большую из длин входных аргументов (обозначим её
-
Создать вспомогательные векторы длины представляющие те же самые полиномы, что и аргументы. Для заполнения части элементов нулями можно использовать функцию zeros.
-
Вычислить сумму.
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)