用matlab做一个程序,求救哇

来源:百度知道 编辑:UC知道 时间:2024/05/25 00:20:40
x[n]=a*u[n], 0<=a<=1, y[-1]=1,y[n]=x[n]-y[n-1]^2+y[n-1]
用matlab把y[n]的图像弄出来,请问各位大侠怎么做啊?我是新手。下面是我做的
N = 100;
n = 1:N;
u = ones(1,length(n));
x(n) = 0.4*u(n);
y(1) = 1;
y(n+1) = x(n+1) -y(n).^2 + y(n);
stem(n,y(n+1))
xlabel('Time index n');ylabel('Amplitude');title('sfdaflfsl')
??? N = 100 + 2;
|
Error: Missing variable or function.

2楼的大侠,我弄进你的答案,他是这么显示的

差分方程求解:
1) y[-1]=1
2) y[n]=x[n]-y[n-1]^2+y[n-1]

技巧:matlab下标只能从1开始。而差分方程却从-1开始。
x={-1, 0, 1, 2, 3, 4, 5, ... 100} 在差分方程中。
x={ 1, 2, 3, 4, 5, 6, 7, ... 102} 在matlab中

程序如下:
a=自定义;
N = 100;%你要计算的长度
N = 100 + 2;
u = ones(1,N);
u(1) = 0;%意思是u[-1]=0
x = a*u;
y = zeros(1,N);
y(1) = 1;%意思是y[-1]=1

for i = 2:102;%从y[0]算到y[100]
y(i) = x(i) - y(i-1)^2 + y(i-1);
end

%假如你想知道y[78]的数值,就输入下面语句,不用加分号,matlab结果窗口就可以显示。

y(78+2)

%假如想打印全部结果

MyResult(1:100) = y (3:102);
MyResult