为什么MATLABa2016中eq2='D3y+2*D2y+Dy==x';会报错
时间: 2024-02-13 19:01:43 浏览: 71
MATLABa2016中eq2='D3y+2*D2y+Dy==x'会报错是因为该语句缺少一个重要的指令,即符号变量的。在MATLAB中,符号变量需要使用syms命令进行声明。而且在声明符号变量时,需要指定变量的自变量。因此,正确的语句应该是:
```matlab
syms y(x)
eq2 = diff(y,x,3) + 2*diff(y,x,2) + diff(y,x) == x
```
这样就可以避免报错了。
相关问题
为什么MATLABa2016中eq2='D2y+3*Dy+2*y=x'会报错
MATLABa2016中eq2='D2y+3*Dy+2*y=x'会报错是因为该语句缺少一个重要的指令,即符号变量的声明。在MATLAB中,符号变量需要使用syms命令进行声明。因此,正确的语句应该是:
```matlab
syms y(x)
eq2 = diff(y,x,2) + 3*diff(y,x) + 2*y == x
```
这样就可以避免报错了。
为什么MATLABa2016中,eq1='D3y+2*D2y+Dy=0'; cond1='y(0)=1,Dy(0)=1,D2y(0)=2'; yzi=dsolve(eq1,cond1); %求系统的零输入响应 yi=simplify(yzi);%simplify函数用于化简符号表达式 syms y(x) eq2='D3y+2*D2y+Dy=x'; eq3='x=exp(-t)*heaviside(t)'; cond2='y(-0.001)=0,Dy(-0.001)=0';%起始条件 yzs=dsolve(eq2,eq3,cond2); %求系统的零状态响应 ys=simplify(yzs.y);%dsolve求解结果yzs为x(t)和y(t)两个变量,yzs.y用来取出yzs中的y(t) y=simplify(yi+ys);%求系统的全响应。为什么MATLABa2016中eq2='D3y+2*D2y+Dy==x';会报错
MATLABa2016中eq2='D3y+2*D2y+Dy==x'会报错是因为该语句缺少一个重要的指令,即符号变量的声明。在MATLAB中,符号变量需要使用syms命令进行声明。而且在声明符号变量时,需要指定变量的自变量。因此,正确的语句应该是:
```matlab
syms y(x)
eq2 = diff(y,x,3) + 2*diff(y,x,2) + diff(y,x) == x
```
这样就可以避免报错了。
阅读全文