
4 блять лр
.docx
Лабораторная работа №4 “Дифференцирование функции, заданной таблично”
возьму синус на интервале от 0 до пи и точка х=pi/5
x=0:pi/10:pi;
y=sin(x);
p2=polyfit(x,y,2)
pa2=polyder(p2)
p3=polyfit(x,y,3)
pa3=polyder(p3)
p4=polyfit(x,y,4)
pa4=polyder(p4)
x0=1;
d1=derivate (y,x0,h1)
x=0:0.01:pi; hold on, plot(x,-0.4050.*x.^2+1.2723.*x-0.0256, 'color', 'red')
for i=1:10 hold on, line([x(30*i-22) x(30*(i+1)-22)],[y(i) y(i+1)])
grid on
end
Функция p = polyfit(x, y, n) находит коэффициенты полинома p(x) степени n, который аппроксимирует функцию y(x) в смысле метода наименьших квадратов.
Функция dp = polyder(p) возвращает производную полинома dp(x) / dx.
p2 =
-0.4050 1.2723 -0.0256
pa2 =
-0.8100 1.2723
p3 =
-0.0000 -0.4050 1.2723 -0.0256
pa3 =
-0.0000 -0.8100 1.2723
p4 =
0.0368 -0.2309 0.0485 0.9874 0.0002
pa4 =
0.1470 -0.6928 0.0970 0.9874
d1=0.5402
значение
производной в точке π/5 с точностью 10^−3
, 10^−6 . Пользоваться значением cos π/5
Возьму логарифм и x=2
y=@(x) log(x);
i=[1:1:10];
h=2.^(-i);
x0=2;
e=derivate(y,x0,10^(-10));
for j=0:1:length(h)
[dy1(m),
dy2(m)]=derivate(y,x0,h(j));
d1(m)=abs(d1(m)-e);
d2(m)=abs(d2(m)-e);
end
d1
d2
d1 =
0.4463 0.4711 0.4850 0.49230.4961 0.4981 0.4990 0.4995
0.4998 0.4999
d2 =
0.5226 0.5108 0.5053 0.5026
0.5013 0.5007 0.5003 0.5002
0.5001 0.5000
Для первого теоретическая
погрешность должна быть линейной, тогда как для второго
квадратичная
hold on
grid on
axis equal
plot(h,d1,'o')
plot(h,d2,'o')
fplot(@(x) 1/25*x^2,[0 0.5])
Проверка
hold on grid on axis equal
plot(h,delta1,'r')
plot(h,delta2,'r')
fplot(@(x) 1/25*x^2,[0 0.5])
В
первом случае погрешность линейная, а
во втором кваратичная
возьму логарифм и точку х=1
погрешность убывает приращение становится нулевым и численная производная равна нулю