二元一次方程组、三元一次方程组、四元一次方程组解析解(代码)

一、二元一次方程组解析解

clc
clear

syms a11 a12 a21 a22 b1 b2 real
x = [a11, a12; a21, a22] \ [b1; b2]

%2 * x1 + 3 * x2 = 8
%x1 + 2 * x2 = 5

a11 = 2;
a12 = 3;
b1 = 8;
a21 = 1;
a22 = 2;
b2 = 5;
x = eval(x)

temp = a11 * a22 - a12 * a21;
if abs(temp) > 1.0e-10
    x1 = -(a12 * b2 - a22 * b1) / temp
    x2 = (a11 * b2 - a21 * b1) / temp
else
    disp('求解出错')
end

二、三元一次方程组解析解

clc
clear

syms a11 a12 a13 a21 a22 a23 a31 a32 a33 b1 b2 b3 real
x = [a11, a12, a13; a21, a22, a23; a31, a32, a33] \ [b1; b2; b3]

%2 * x1 + 3 * x2 + x3 = 11
%3 * x1 + 2 * x2 + 2 * x3 = 13
%x1 + 2 * x2 + 3 * x3 = 14

a11 = 2;
a12 = 3;
a13 = 1;
b1 = 11;
a21 = 3;
a22 = 2;
a23 = 2;
b2 = 13;
a31 = 1;
a32 = 2;
a33 = 3;
b3 = 14;
x = eval(x)

temp = a11 * (a22 * a33 - a23 * a32) + a12 * (a23 * a31 - a21 * a33) + a13 * (a21 * a32 - a22 * a31);
if abs(temp) > 1.0e-10
   x1 = ((a22 * a33 - a23 * a32) * b1 + (a13 * a32 - a12 * a33) * b2 + (a12 * a23 - a13 * a22) * b3) / temp
   x2 = -((a21 * a33 - a23 * a31) * b1 + (a13 * a31 - a11 * a33) * b2 + (a11 * a23 - a13 * a21) * b3) / temp
   x3 = ((a21 * a32 - a22 * a31) * b1 + (a12 * a31 - a11 * a32) * b2 + (a11 * a22 - a12 * a21) * b3) / temp
else
   disp('求解出错')
end


三、四元一次方程组解析解

clc
clear

syms a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44 b1 b2 b3 b4 real
x = [a11, a12, a13, a14; a21, a22, a23, a24; a31, a32, a33, a34; a41, a42, a43, a44] \ [b1; b2; b3; b4]

%x1 + 2 * x2 + 3 * x3 + 4 * x4 = 30
%2 * x1 + x2 + 4 * x3 + 3 * x4 = 28
%4 * x1 + 2 * x2 + x3 + 3 * x4 = 23
%2 * x1 + 3 * x2 + 4 * x3 + x4 = 24

a11 = 1;
a12 = 2;
a13 = 3;
a14 = 4;
b1 = 30;
a21 = 2;
a22 = 1;
a23 = 4;
a24 = 3;
b2 = 28;
a31 = 4;
a32 = 2;
a33 = 1;
a34 = 3;
b3 = 23;
a41 = 2;
a42 = 3;
a43 = 4;
a44 = 1;
b4 = 24;
x = eval(x)

temp = (a11 * (a22 * (a33 * a44 - a34 * a43) + a23 * (a34 * a42 - a32 * a44) + a24 * (a32 * a43 - a33 * a42)) ...
      + a12 * (a21 * (a34 * a43 - a33 * a44) + a23 * (a31 * a44 - a34 * a41) + a24 * (a33 * a41 - a31 * a43)) ...
      + a13 * (a21 * (a32 * a44 - a34 * a42) + a22 * (a34 * a41 - a31 * a44) + a24 * (a31 * a42 - a32 * a41)) ...
      + a14 * (a21 * (a33 * a42 - a32 * a43) + a22 * (a31 * a43 - a33 * a41) + a23 * (a32 * a41 - a31 * a42)));
if abs(temp) > 1.0e-10
    x1 = -(b4 * (a12 * (a23 * a34 - a24 * a33) + a13 * (a24 * a32 - a22 * a34) + a14 * (a22 * a33 - a23 * a32)) ...
         + b3 * (a12 * (a24 * a43 - a23 * a44) + a13 * (a22 * a44 - a24 * a42) + a14 * (a23 * a42 - a22 * a43)) ... 
         + b2 * (a12 * (a33 * a44 - a34 * a43) + a13 * (a34 * a42 - a32 * a44) + a14 * (a32 * a43 - a33 * a42)) ...
         + b1 * (a22 * (a34 * a43 - a33 * a44) + a23 * (a32 * a44 - a34 * a42) + a24 * (a33 * a42 - a32 * a43))) / temp
    x2 = (b4 * (a11 * (a23 * a34 - a24 * a33) + a13 * (a24 * a31 - a21 * a34) + a14 * (a21 * a33 - a23 * a31)) ...
         + b3 * (a11 * (a24 * a43 - a23 * a44) + a13 * (a21 * a44 - a24 * a41) + a14 * (a23 * a41 - a21 * a43)) ...
         + b2 * (a11 * (a33 * a44 - a34 * a43) + a13 * (a34 * a41 - a31 * a44) + a14 * (a31 * a43 - a33 * a41)) ...
         + b1 * (a21 * (a34 * a43 - a33 * a44) + a23 * (a31 * a44 - a34 * a41) + a24 * (a33 * a41 - a31 * a43))) / temp
    x3 = -(b4 * (a11 * (a22 * a34 - a24 * a32) + a12 * (a24 * a31 - a21 * a34) + a14 * (a21 * a32 - a22 * a31)) ...
         + b3 * (a11 * (a24 * a42 - a22 * a44) + a12 * (a21 * a44 - a24 * a41) + a14 * (a22 * a41 - a21 * a42)) ...
         + b2 * (a11 * (a32 * a44 - a34 * a42) + a12 * (a34 * a41 - a31 * a44) + a14 * (a31 * a42 - a32 * a41)) ...
         + b1 * (a21 * (a34 * a42 - a32 * a44) + a22 * (a31 * a44 - a34 * a41) + a24 * (a32 * a41 - a31 * a42))) / temp
    x4 = (b4 * (a11 * (a22 * a33 - a23 * a32) + a12 * (a23 * a31 - a21 * a33) + a13 * (a21 * a32 - a22 * a31)) ...
         + b3 * (a11 * (a23 * a42 - a22 * a43) + a12 * (a21 * a43 - a23 * a41) + a13 * (a22 * a41 - a21 * a42)) ...
         + b2 * (a11 * (a32 * a43 - a33 * a42) + a12 * (a33 * a41 - a31 * a43) + a13 * (a31 * a42 - a32 * a41)) ...
         + b1 * (a21 * (a33 * a42 - a32 * a43) + a22 * (a31 * a43 - a33 * a41) + a23 * (a32 * a41 - a31 * a42))) / temp
else
    disp('求解出错')
end
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值