matlab解大型方程组具体方程引用问题

用matlab解大型线性方程组,方程个数和未知量都很大(满秩),假如有100个,每个方程都是通过上游程序计算得到,我定义为eq1~eq100,具体表达式复杂,怎样用solve函数来解? 关键是怎样引用这100个方程到solve函数中 例如:x=[x1 x2 x3 ...x100]作为100个未知量 eq(i)=F(x)表示每一个关于x的方程(i从1到100),具体表达式很复杂 请写出调用solve求解的形式,谢谢!

在matlab里面solve命令主要是用来求解代数方程(即多项式)的解,但是也不是说其它方程一个也不能解,不过求解非代数方程的能力相当有限,通常只能给出很特殊的实数解。
solve有两种用法,一种是用字符串作为参数,在这种情况下字符串被整体传到函数内,不会自动将已定义的内容代到字符串内,因此必须手动拼接字符串,用num2str将数字转换为字符串,再和其他字符串接到一起成为一个整体,再传给solve,比较麻烦。另一种是输入符号表达式,
x=solve('eqn1','eqn2',...,'var1','var2',...)。
例子:
解方程组:x^2+y-6=0;y^2+x-6=0
程序设计:
syms x y
[x,y]=solve(‘x^2+y-6’,‘y^2+x-6’,‘x’,‘y’)
solve一般用于求解析解,数值解并不擅长,求数值解还是用fsolve比较合适
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答