matlab在解方程组时,如何给变量限定一个范围区间?

>> syms SA Tab Tac theta x y;
>> eq1=SA^2+1-2*SA*cos(pi/2-theta)-(SA+340*Tac)^2;
>> eq2=SA^2+1-2*SA*cos(theta)-(SA+340*Tab)^2;
>> [SA,T]=solve(eq1,eq2)
这样直接解出来会有四组解,其中有几个是我不需要的,所以我要把theta角限定在【0:pi/2】中,所以我在定义完变量后,在第一行下面加入>> T=0:0.01:pi/2; 然后系统就报错了

??? Error using ==> solve>assignOutputs at 132
3 variables does not match 2 outputs.

Error in ==> solve at 87
varargout = assignOutputs(nargout,R,symvars);

这是什么原因?

[SA,T]代表输出解的个数,??? Error using ==> solve>assignOutputs at 1323 variables does not match 2 outputs.
提示你,3个变量应该有三个输出,说你少个一个数
而且,你需要设定哪些是变量追问

>> syms SA Tab Tac theta x y;

我这儿第一句不就已经设定好哪些是变量了吗?

顺便问下哈,MATLAB里面可不可以解带参数的方程的?
比如ax^2+bx+c=0的?(假设a b c是已知的参数)

追答

可以解带参数的方程,需要设置哪些是变量,例如
syms a b c x
solve(a*x^2+b*x+c,'x'),设定x为变量,a、b、c为常量

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答