matlab中求解带参数非线性方程

例如x+y^2=a,x-y=b。希望输入a,b的值,返回相应结果。

例如:输入a=2,b=1,返回x=1,y=1

用solve老是返回的是x、y关于a、b的表达式,能直接返回数值计算结果吗
例如上面这个简单一点的线性方程组,希望输出是5和-5,但是solve表达式不能改,因为a具体是多少需要我其他部分进行程序判断的

返回了x、y的表达式之后写:
x=subs(x,[a,b],[a_,b_]);
y=subs(y,[a,b],[a_,b_]);
(a_,b_是你要代进去的数值,输到MATLAB里的时候要替换掉或者在之前赋值)追问

如果a是一个变量呢,并非一个常数。上面有其他程序算出a,然后把上面算出的a代入这个里面怎么写

追答

干脆倒过来吧。。。
你在solve里面写a_和b_,之后再写:
x=subs(x,[a_,b_],[a,b]);
y=subs(y,[a_,b_],[a,b]);
(a、b是你要代进去的值)

追问

这个结果。。。哎

追答

我错了。。。。
你在写solve之前先写一句
syms a_ b_
然后你再写:
[x,y]=solve('x-y=a_'……之类的),注意引号里的a和b都改成a_和b_

然后
x=subs(x,[a_,b_],[a,b]);
y=subs(y,[a_,b_],[a,b]);

温馨提示:答案为网友推荐,仅供参考
相似回答