matlab 离散点求导_如何用matlab求离散型数值的导数
展開全部
MATLAB中沒有直接提供求數值導數的函數,只能通32313133353236313431303231363533e78988e69d8331333366306532過差分估算。
DX=diff(X) 計算向量X的向前差分,DX(i)=X(i+1)-X(i),0
t=[0:0.04:1.48];
y=[7.86 7.84 7.82 7.77 7.72 7.68 7.61 7.51 7.42 7.33 7.21 7.07 6.94 6.79 6.64 6.48 6.29 6.11
5.92 5.72 5.50 5.27 5.03 4.78 4.53 4.25 3.98 3.69 3.40 3.10 2.78 2.43 2.09 1.77 ?1.42 1.09 0.68
0.30];
Dy=diff(y)/.04;
Dt=[0.04:0.04:1.48];
p=polyfit(t,y,2);
Y=polyval(p,t);
DY=diff(Y)/.04;
plot(t,y,'b*',t,Y,'r-',Dt,Dy,'bs',Dt,DY,'g-')
xlabel('t')
ylabel('y&y''')
legend('y值','y擬合2階多項式','y''差分值','y''擬合值')
擴展資料
clc;clear all
h=0.01;
%x屬于【a,b】
a=-5;b=5
x=a:h:b;
n=length(x);
%定義y
y=sin(0.3*x).*cos(3*x);
hold on
grid on
yx=zeros(1,n);
yxx=zeros(1,n);
for i=2:n-1
yx(i-1)=(y(i+1)-y(i-1))/(2*h);
yxx(i-1)=(y(i+1)+y(i-1)-2*y(i))/h^2;
end
plot(x,y,'r','linewidth',2)
plot(x(2:n-1),yx(1:n-2),'g','linewidth',2);
plot(x(2:n-1),yxx(1:n-2),'b','linewidth',2);
legend('原函數','差分一階導數','差分二階導數')
xlabel('x','Interpreter','latex','color','r','fontsize',28);
ylabel('y','Interpreter','latex','color','r','fontsize',28);
總結
以上是生活随笔為你收集整理的matlab 离散点求导_如何用matlab求离散型数值的导数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联通服务器提示授权文件,管家婆物联通,
- 下一篇: 电子对抗中的烧穿距离