解释一下这段程序:yn=1; yn1=0; while 1, yn2=yn1; yn1=yn; yn=1.97*yn1-yn2; end。并画出该表达式的图形、写出代码
时间: 2023-06-17 18:02:38 浏览: 201
SYN程序代码.
这段程序是一个计算差分方程的迭代计算过程,其差分方程为:yn = 1.97 * yn-1 - yn-2,其中y0 = 0,y1 = 1。
具体解释如下:
- 首先定义yn=1和yn1=0作为y0和y1的初始值。
- 进入while循环,计算yn2,yn1和yn的值,并将yn1和yn2的值更新为当前的yn和yn1。
- 不断迭代计算,直到满足while循环条件为止(在这里while 1表示一直循环下去)。
该差分方程的图形为一个振荡的曲线,随着迭代次数的增加,曲线逐渐趋近于稳定状态。以下是该表达式的代码和图形:
```matlab
yn=1;
yn1=0;
for i=1:1000
yn2=yn1;
yn1=yn;
yn=1.97*yn1-yn2;
end
plot(1:1000, yn)
xlabel('Iteration')
ylabel('yn')
```
![image-20211102152206417](https://i.loli.net/2021/11/02/xQ9XFSMwqT1ltnp.png)
阅读全文