如何用matlab求离散型数值的导数

作者&投稿:乜利 (若有异议请与网页底部的电邮联系)
~

MATLAB中没有直接提供求数值导数的函数,只能通过差分估算。

DX=diff(X) 计算向量X的向前差分,DX(i)=X(i+1)-X(i),0<i<n。

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用for循环求n阶乘怎么写?
matlab求1-10的阶乘的函数源码如下:function p = factorial()p=1;for a=1:10%设置要求的阶乘 for i=1:a%循环遍历从1到a p=p*i;%遍历相乘 end;\/\/函数结束 p%输出结果 p=1;%p还原其初始值 end end matlab特点:1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来...

怎样用matlab求这个函数的和?
lambda = 1;k0 = 1;Pi = pi;fs = 1;ps = 1;ls = 1;n = 300;ti = 243:n;d = lambda\/fs\/k0\/(Pi-ps)\/ls*(ti(1)-ti).*sqrt(ti);sd = sum(d);<<<>> sdsd = -1.2943e+004

如何用matlab求下式函数
syms a b x y1=3\/x^2 y2=int(y1,-a,x);y3=exp(1\/x^2)exp(y2);y4=int(y3,-a,b);m=1\/(1-y4)

用matlab表示分段函数取值求和
关于关键字end:建议无论何时都在函数末尾加上end。2.语法二:匿名函数,f=@(参数列表)(函数表达式)例如:f=@(x)(x^2)注意:应用场景:匿名函数通常在脚本文件中或命令行中被创建,由于形式简单便于构建绘图中的函数,或者复合函数,或者微积分的计算,然后是一些基础函数使用:3.创建全零数组:...

用matlab如何求出一个数组中最接近某个数的两个数的下标??
A= [189 188 187 184 178 169 155 137 118 99 80 64 51 39 30 10 12 15 20 30 44 63 86 112 136 157 171 180 185 189 190 190 191];B=abs(A-82);[x,index]=sort(B);A1=[A...

用matlab求函数表达式怎样求
x=[]'y=[]'fun=inline('exp(-(x-a(1))^2\/(2*(a(2))^2))','a','x')x0=[0 0][a,resnorm,residual,exitflag]=lsqcurvefit(fun,x0,x,y)a(1)即μ,a(2)即σ

用matlab怎么求解含有三角函数的非线性方程
求解含有三角函数的非线性方程的方法:1、对于简单的含有三角函数的非线性方程,可以用solve()函数求解。solve('表达式')2、较复杂的含有三角函数的非线性方程,可以用fsolve()函数求解。或用其他数值分析方法(如二分法,牛顿法等)求解。func=@(x) 表达式 %自定义函数 fsolve(func,x0) %x0...

怎么用matlab批量求解方程,求高手,本人不会用MATLAB,求给详细的编程
参考代码:>> l=solve('l^2*log(l\/5)-tP','l');>> t=100;P=0.1:0.1:4;>> l=subs(l,t*P);>> [P;l]'ans = 0.1000 6.3883 0.2000 7.2870 0.3000 7.9948 0.4000 8.5938 0.5000 9.1205 0.6000 9.5947 0.7000 10.0286...

如何用matlab 求面积?
interv_x = zeros( 1, N - 1 );mid_y = zeros( 1, N - 1);for i = 2 : length(x)mid_y(i-1) = ( y(i) + y(i-1) ) \/ 2;interv_x(i - 1) = x(i) - x(i-1);end 面积 area = interv_x * mid_y';对于1分钟,2分钟的数据,直接调用这段代码都可以计算。

用Matlab怎么求下面的方程?
>> syms C0 m h Ey x v K;Expression=(C0+m\/(h*sqrt(pi*Ey*x*v)))*exp(-K*x\/v);X=solve(Expression,'x')X = m^2\/(C0^2*Ey*pi*h^2*v)参考资料:hyyly520 专门解答 MATLAB VB 基础问题

交口县19795487086: 请问怎么使用matlab求离散型变量的导数?例如x=【1 2 3 4】y=【2 4 5 6 】 -
诗倩胰酶: diff() 比如: diff([1 2 3 4])ans = 1 1 1

交口县19795487086: 怎么利用MAtlab求离散点的导数 -
诗倩胰酶: 离散点求导都是用差分来进行的,差分一般分前向差分、后向差分和中心差分,形式分别为 ux(i) = u(i)-u(i-1); ux(i) = u(i+1)-u(i); ux(i) = (u(i+1)-u(i-1))/2;

交口县19795487086: 只有离散数据,如何在matlab中求这些数据的导数而且保持求导前后维数不变 -
诗倩胰酶: 有限差分,你的求导的变量是等距的么? 最简单的例子t=[0 0.1 0.2 0.3]; x=[x1,x2,x3,x4]; dxdt=[(x2-x1)/(0.1-0),(x3-x1)/(0.2-0),(x4-x2)/(0.3-0.1),(x4-x3)/(0.3-0.2)] 中间两个是中心差分,精度更高而已

交口县19795487086: Matlab中已经取离散值画完图的函数怎样各个点求导数值? -
诗倩胰酶: syms t1; x1=speed*cos(sita).*t1; vx=diff(x1) vx =100

交口县19795487086: 如何用matlab对函数求导数 -
诗倩胰酶: matlab求导命令diff调用格式:diff(函数) , 求的一阶导数;diff(函数, n) , 求的n阶导数(n是具体整数);diff(函数,变量名), 求对的偏导数;diff(函数, 变量名,n) ,求对的n阶偏导数;

交口县19795487086: 怎样用matlab将离散的速度信号求导和求积 -
诗倩胰酶: 我是用采集到的加速度百信号来做两次积分得到位移信号,由于采集到的加速度信号有直流偏移量,所以用了detrend命令做去趋势处理.为了检验代码度是否正确,我用了一个标准的正弦函数来验证.代码如下:t=(0:1:10240-1)/2000; a=sin(5*t...

交口县19795487086: matlab求导数 急急急 -
诗倩胰酶: 用matlab求导,可以diff()函数命令来完成.diff()函数使用格式 diff(fun(x),x,n) %对于单变量,x可以省略 fun(x)——函数,x——变量,n——求导阶数 题(4)>> y4=exp(x)*cos(x);>> diff(y4,4) 题(5)>> y5=x^2*sin(2*x);>> diff(y5,20) 运行结果

交口县19795487086: matlab没有具体函数怎么求导 -
诗倩胰酶: 首先,求导属于符号运算,对于一般的数值型的变量是不能进行求导的. 其次,用@ 定义的匿名函数只是一个函数句柄,必需对其进行调用才能真正使得函数生效. 其实,也并非用@ 定义的函数就不能求导,重要的是满足上面的两点:要调用函数

交口县19795487086: matlab数值导数计算
诗倩胰酶: 先确定 假设在[-3,3]区间(定义域)内以0.01为步长求数值导数. 第一种:首先用一个4次多项式p(x)拟合y=f(x),并对p(x)求一般意义下的导数dp(x),然后求出dp(x)在假设点的值; 第二种:直接求y=f(x)在假设点的数值导数; 第三种:先手工算出y=f...

交口县19795487086: 怎样用matlab将离散的速度信号求导和求积变成加速度和位移信号 -
诗倩胰酶: 下面的就是离散信号求微分和积分的计算公式,相信你能看懂. 1.当前加速度=(当前速度-上一次速度)/采样时间 2.当前位移=上一次位移+(当前速度+上一次速度)*采样时间/2 积分属于梯形积分

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网