Fre*_*e_D 1 matlab linear-algebra symbolic-math
我正在尝试解决s域中的方程组.因此,以矩阵形式建立这个方程组:
a=[.4*s+s+5 -5; -5 .5*s+5]
c=[3/s; 3/(2*s)]
(1/s)*a*b=c
Run Code Online (Sandbox Code Playgroud)
我只是得到s未定义的错误.我怎样才能用s来解决b?
Matlab没有(自然地)进行符号计算 - 这是你的代码试图做的事情.Matlab的变量需要是具体的数字,数组或结构等.它们不能只是任意数字的占位符.
(除非:您使用Matlab 的符号计算工具箱.我没有真正使用过这个,因为我更喜欢在Maple或Mathematica等环境中进行符号计算.您甚至可以在Wolfram Alpha网站上解决您的问题)
但是如果你选择一个特定的s值,计算你想要的东西很简单:
s = 5;
a=[.4*s+s+5 -5; -5 .5*s+5];
c=[3/s; 3/(2*s)];
b = s*(a\c);
Run Code Online (Sandbox Code Playgroud)
我使用反斜杠运算符进行线性反演的地方.
你现在应该有
(1/s)*a*b-c
Run Code Online (Sandbox Code Playgroud)
是零向量.
编辑:我查看了符号工具箱.看起来这就是你想要的(但是你需要获得许可和安装的符号工具箱才能工作):
syms s;
a=[.4*s+s+5 -5; -5 .5*s+5];
c=[3/s; 3/(2*s)];
b = simple(s*(a\c))
Run Code Online (Sandbox Code Playgroud)