matlab差分基础问题?!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab差分基础问题?!相关的知识,希望对你有一定的参考价值。

A=[1,2,3,4]
diff(A)
ans=1 1 1
怎么算出来的?书上可都是给一系列(x,y)值,然后再计算附近点的差分的啊?怎么matlab里面给个函数式就可以了?而且还不是任意函数?

调用filter函数解差分方程。

1)yn=filter(B,A,xn)是计算输入向量xn的零状态响应输出信号yn,yn与xn长度相等,
其中B=[b0,b1,……bn], A=[a0,a1,……an]。其中a0=1。

2)yn=filter(B,A,xn,xi)是计算全响应的函数。xi是等效初始条件的输入序列,xi能由初始条件确定。此时需要调用filtic函数。xi=filtic(B,A,ys,xs)。其中ys,xs是初始条件向量。
其中ys=[y(-1),y(-2)……y(-N)],xs=[x(-1),x(-2),……x(-M)]
另外若xn为因果序列xs=0可缺省。

举个例子若y(n)-0.8y(n-1)=x(n),初始条件y(-1)=1。
a=0.8,ys=1;
xn=[1,zeros(1,30)];
B=1, A=[1,-a];
xi=filtic(B,A,ys);
yn=filter(B,A,xn,xi);
%以下是解出来的yn图像
n=0:length(yn)-1;
stem(n,yn,'.');
参考技术A Y=diff(X)计算X相邻元素的差分,即
Y=[X(2)-X(1) X(3)-X(2) ... X(N)-X(N-1)]
若X为矩阵,diff(X)可得列差分矩阵
Y=diff(X,n)就是对X进行N阶差分
Y=diff(X,n,dim)就是沿着定维dim的N阶差分

其实你只要看看MATLAB help,里面都有的本回答被提问者采纳
参考技术B 是后一个点减前一个点。就是2-1,3-2,4-3 参考技术C 那就这样:
dydx=diff(y)./diff(x);

10.simulink基础建模操作——微分,积分,差分运算

欢迎订阅《FPGA/MATLAB/SIMULINK系列教程》

目录

1.Simulink微分,积分,差分模块

2.Simulink微分模块建模案例仿真分析

以上是关于matlab差分基础问题?!的主要内容,如果未能解决你的问题,请参考以下文章

通过有限差分求求解较复杂的微分方程及matlab仿真

基于差分迭代发求解离散微分方程的matlab仿真

10.simulink基础建模操作——微分,积分,差分运算

基于加入差分进化策略的杂草算法实现WSN节点优化部署matlab代码

WSN布局基于差分进化策略结合杂草算法实现WSN节点优化部署matlab源码

matlab实现组合差异进化算法(CoDE)(基础简化版)