怎么用MATLAB编写差分方程的程序? 20

输入额e(k)=1;输出为u(k);k=1:1:100;u(k)=173.2e(k)-346.3e(k-1)+173e(k-2)+1.951u(k-1)-0.9512u(... 输入额e(k)=1;输出为u(k);k=1:1:100;
u(k)=173.2e(k)-346.3e(k-1)+173e(k-2)+1.951u(k-1)-0.9512u(k-2)
展开
 我来答
WM_THU
推荐于2017-11-25 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3920万
展开全部
方程中涉及u(k-1)和u(k-2)两项,所以还必须给出初始状态u(0)和u(-1)。否则无法求解。
另外,e(k)=1是指k=1:100中e始终为1么?
追问
初始时刻应该都是取0吧?e(0)=e(-1)=u(0)=u(-1)=0;e(k)表示单位阶跃输入;采样时间ts=0.0001;
time(k)=k*ts;
plot(time,e,'k',time,u,'k');
追答

我不管你的采样时间,只讨论离散部分。

e = zeros(102, 1); % 把-1和0也算进去,共102项
u = zeros(102, 1);
e(3:end) = 1;
for k = 3:102
u(k) = 173.2*e(k)-346.3*e(k-1)+173*e(k-2)+1.951*u(k-1)-0.9512*u(k-2);
end
% 去掉前两项,得到1...100的u
up = u(3:end);
ep = e(3:end);
stem(up);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式