当前位置:编程学习 > Matlab >>

matlab 差分方程通用程序 一点问题

程序 如下 : a=input('差分方程左端的系数向量a=[a(1),...a(na)] a='); b=input('差分方程右端的系数向量b=[b(1),...b(na)] b='); u=input('输入信号序列 u='); na=length(a); nb=length(b); nu=length(u); s=['起算点前',int2str(na-1),'点y的值=[y(',int2str(na-2),'),...y(0)]=']; ym=zeros(1,na+nu-1);ym(1:na-1)=input(s); um=[zeros(1,na-2),u]; for n=na:na+nu-1 ys=ym(n-1:-1:n-na+1); us=um(n:-1:n-nb+1); ym(n)=(b*us'-a(2:na)*ys')/a(1); end y=ym(na:na+nu-1);sten(y),grid on; line([0,nu],[0,0]); 运行程序 输入 差分方程左端的系数向量a=[a(1),...a(na)] a=[1,0.1,0.15,-0.225] 差分方程右端的系数向量b=[b(1),...b(na)] b=[3,7,1] 输入信号序列 u=exp(0.1*[1:20]) 起算点前3点y的值=[y(2),...y(0)]=[0,0,0] ??? Index exceeds matrix dimensions. Error in ==> ca at 12 us=um(n:-1:n-nb+1); 求解释 感谢
追问:能不能修改一下 
我这要求是通用性的
得运行程序后 输入任意数值 
1、for n=na:na+nu-1   =》 for n=na:na+nu-2
2、sten   =》  stem
后 
输入任意数值 不出图像 
感谢
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,