Matlab求解带有约束条件的线性方程组

研究了一会solve函数,发现Matlab对于带有约束条件的线性方程组可以用solve函数解答。

关于solve函数的全部用法,可以参考博客https://blog.csdn.net/ldj1208/article/details/51893293

此处,仅以一道小题目为例,介绍求解带有约束条件的线性方程组的方法。

例:

\left\{\begin{matrix}9*x1-3*x2-2*x3-3*x4=0 & & & \\ 5*x1-9*x2+2*x3+3*x4=0 & & & \\ 2*x1+5*x2-10*x3+3*x4=0 & & & \\ 2*x1+x2+6*x3-9*x4=0 & & & \\ 50=<x_{i}<=70 & & & \end{matrix}\right.

解出xi的值.

对应的matlab代码是

syms x1 x2 x3 x4
[x1,x2,x3,x4,params,conditions] = solve(9*x1-3*x2-2*x3-3*x4==0,9*x2-5*x1-2*x3-3*x4==0,10*x3-2*x1-5*x2-3*x4==0,9*x4-2*x1-x2-6*x3==0,x1>=50,x1<=70,x2>=50,x2<=70,x3>=50,x3<=70,x4>=50,x4<=70,[x1,x2,x3,x4],'ReturnConditions',true)
solutions = [x1,x2,x3,x4];

此处的syms x1 x2 x3 x4 是表示最终需要求解的变量是这四个 

[x1,x2,x3,x4,params,conditions],前四个表示我要求解的四个变量,然后params表示方程解可以带有参数,conditions表示方程解中的参数限制条件

而solve函数中的内容,首先是把方程组全部输入(以逗号分隔),然后写出要求解的变量[x1,x2,x3,x4],最后要输入'ReturnConditions',true,表示将ReturnConditions设置为true。此时执行该行代码已经可以求解成功了

solutions = [x1,x2,x3,x4]只是做一个简单的赋值,方便看。

附上结果:

上述结果即为:

\LARGE \left\{\begin{matrix}x1 = \frac{54*z}{59} \\ x2 = \frac{63*z}{59} \\ x3=\frac{60*z}{59} \\ x4 = z \\ \frac{1475}{27}=<z<=\frac{590}{9} \end{matrix}\right.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值