用matlab求一元多次方程的s值,其中已知Eeq,Req,Xeq,KH是4×1的
列向量。可以用for循环语句和vpasolve函数来求解,其实现方法:
Eeq=[?;?;?;?]
Req=[?;?;?;?]
Xeq=[?;?;?;?]
KH=[?;?;?;?]
KL=?
a=?;r2=?;x2=?;
for n=1:4
syms s
s0(n)=vpasolve(式9
表达式==0);
表达式中,Eeq用Eeq(n)表示,Xeq用Xeq(n)表示,KH用KH(n)表示,Req用Req(n)表示,
end
s=s0
追问还是会报错,我是哪儿有问题,还是两边数据类型有问题?图里面是我加的代码(与公式计算参数相关的部分),字数限制只能发图。
追答for循环语句有点问题,可以这样改
运行结果,每次s有四个解,s是4×4的向量
追问您好,是这样的,这个s是感应电机转差率,而且它应该是4*1的列向量,不是复数。出来结果s成了4*4的向量,且在这个给定电压幅值下s是不会大于1的,s应该很小比较接近0,大于1了就是制动状态了。所以不知道是哪儿定义还有问题。
追答得到的s都是复数解。是否方程有没有错误?