把线性方程组变系数矩阵和常量形式

来源:互联网 发布:windows10看mac地址 编辑:程序博客网 时间:2024/06/15 09:31

问题来源和目的

四出搜索打探

wolfram的语言学习,但从书上还不行,还得不断从各种问题中学习点点滴滴,慢慢积累. 只是记录一些点点滴滴. 回答有用.

问题及答案

1. 如何取出给定表达式中的所有变量

表达式 1+x2+y3+sinz

代码:
Cases[1 + x^2 + y^3 + Sin[z], _Symbol, Infinity]

2. 变量数比较多的线性方程组的符号解

方程组包含160个线性方程:
eqns={A1 + A2 == 0, A1 == Q111*g, A2 == Q112/g, B1 + B2 == 0, B1 == Q121*g, B2 == Q122/g, C1 + C2 == 0, C1 == Q221*g, C2 == Q222/g, D1 + D2 == 0, D1 == Q321*g, D2 == Q322/g, E1 + E2 == 0, E1 == Q421*g, E2 == Q422/g, F1 + F2 == UF, F1 == Q431*g, F2 == Q432/g, G1 + G2 == 0, G1 == Q831*g, G2 == Q832/g, H1 + H2 == 0, H1 == Q1231*g, H2 == Q1232/g, I1 + I2 == 0, I1 == Q1631*g, I2 == Q1632/g, J1 + J2 == 0, J1 == Q1641*g, J2 == Q1642/g, K1 + K2 == 0, K1 == Q1541*g, K2 == Q1542/g, L1 + L2 == 0, L1 == Q1441*g, L2 == Q1442/g, M1 + M2 == 0, M1 == Q1341*g, M2 == Q1342/g, N1 + N2 == 0, N1 == Q1311*g, N2 == Q1312/g, O1 + O2 == 0, O1 == Q911*g, O2 == Q912/g, P1 + P2 == 0, P1 == Q511*g, P2 == Q512/g, Q111 + Q112 == Q121 + Q122, Q121 + Q122 == Q131 + Q132, Q131 + Q132 == Q141 + Q142, Q111 + Q121 + Q131 + Q141 == Q112 + Q122 + Q132 + Q142, Q211 + Q212 == Q221 + Q222, Q221 + Q222 == Q231 + Q232, Q231 + Q232 == Q241 + Q242, Q211 + Q221 + Q231 + Q241 == Q212 + Q222 + Q232 + Q242, Q311 + Q312 == Q321 + Q322, Q321 + Q322 == Q331 + Q332, Q331 + Q332 == Q341 + Q342, Q311 + Q321 + Q331 + Q341 == Q312 + Q322 + Q332 + Q342, Q411 + Q412 == Q421 + Q422, Q421 + Q422 == Q431 + Q432, Q431 + Q432 == Q441 + Q442, Q411 + Q421 + Q431 + Q441 == Q412 + Q422 + Q432 + Q442, Q511 + Q512 == Q521 + Q522, Q521 + Q522 == Q531 + Q532, Q531 + Q532 == Q541 + Q542, Q511 + Q521 + Q531 + Q541 == Q512 + Q522 + Q532 + Q542, Q611 + Q612 == Q621 + Q622, Q621 + Q622 == Q631 + Q632, Q631 + Q632 == Q641 + Q642, Q611 + Q621 + Q631 + Q641 == Q612 + Q622 + Q632 + Q642, Q711 + Q712 == Q721 + Q722, Q721 + Q722 == Q731 + Q732, Q731 + Q732 == Q741 + Q742, Q711 + Q721 + Q731 + Q741 == Q712 + Q722 + Q732 + Q742, Q811 + Q812 == Q821 + Q822, Q821 + Q822 == Q831 + Q832, Q831 + Q832 == Q841 + Q842, Q811 + Q821 + Q831 + Q841 == Q812 + Q822 + Q832 + Q842, Q911 + Q912 == Q921 + Q922, Q921 + Q922 == Q931 + Q932, Q931 + Q932 == Q941 + Q942, Q911 + Q921 + Q931 + Q941 == Q912 + Q922 + Q932 + Q942, Q1011 + Q1012 == Q1021 + Q1022, Q1021 + Q1022 == Q1031 + Q1032, Q1031 + Q1032 == Q1041 + Q1042, Q1011 + Q1021 + Q1031 + Q1041 == Q1012 + Q1022 + Q1032 + Q1042, Q1111 + Q1112 == Q1121 + Q1122, Q1121 + Q1122 == Q1131 + Q1132, Q1131 + Q1132 == Q1141 + Q1142, Q1111 + Q1121 + Q1131 + Q1141 == Q1112 + Q1122 + Q1132 + Q1142, Q1211 + Q1212 == Q1221 + Q1222, Q1221 + Q1222 == Q1231 + Q1232, Q1231 + Q1232 == Q1241 + Q1242, Q1211 + Q1221 + Q1231 + Q1241 == Q1212 + Q1222 + Q1232 + Q1242, Q1311 + Q1312 == Q1321 + Q1322, Q1321 + Q1322 == Q1331 + Q1332, Q1331 + Q1332 == Q1341 + Q1342, Q1311 + Q1321 + Q1331 + Q1341 == Q1312 + Q1322 + Q1332 + Q1342, Q1411 + Q1412 == Q1421 + Q1422, Q1421 + Q1422 == Q1431 + Q1432, Q1431 + Q1432 == Q1441 + Q1442, Q1411 + Q1421 + Q1431 + Q1441 == Q1412 + Q1422 + Q1432 + Q1442, Q1511 + Q1512 == Q1521 + Q1522, Q1521 + Q1522 == Q1531 + Q1532, Q1531 + Q1532 == Q1541 + Q1542, Q1511 + Q1521 + Q1531 + Q1541 == Q1512 + Q1522 + Q1532 + Q1542, Q1611 + Q1612 == Q1621 + Q1622, Q1621 + Q1622 == Q1631 + Q1632, Q1631 + Q1632 == Q1641 + Q1642, Q1611 + Q1621 + Q1631 + Q1641 == Q1612 + Q1622 + Q1632 + Q1642, Q131 == Q212/g, Q132 == Q211*g, Q231 == Q312/g, Q232 == Q311*g, Q331 == Q412/g, Q332 == Q411*g, Q531 == Q612/g, Q532 == Q611*g, Q631 == Q712/g, Q632 == Q711*g, Q731 == Q812/g, Q732 == Q811*g, Q931 == Q1012/g, Q932 == Q1011*g, Q1031 == Q1112/g, Q1032 == Q1111*g, Q1131 == Q1212/g, Q1132 == Q1211*g, Q1331 == Q1412/g, Q1332 == Q1411*g, Q1431 == Q1512/g, Q1432 == Q1511*g, Q1531 == Q1612/g, Q1532 == Q1611*g, Q141 == Q522/g, Q142 == Q521*g, Q541 == Q922/g, Q542 == Q921*g, Q941 == Q1322/g, Q942 == Q1321*g, Q241 == Q622/g, Q242 == Q621*g, Q641 == Q1022/g, Q642 == Q1021*g, Q1041 == Q1422/g, Q1042 == Q1421*g, Q341 == Q722/g, Q342 == Q721*g, Q741 == Q1122/g, Q742 == Q1121*g, Q1141 == Q1522/g, Q1142 == Q1521*g, Q441 == Q822/g, Q442 == Q821*g, Q841 == Q1222/g, Q842 == Q1221*g, Q1241 == Q1622/g, Q1242 == Q1621*g};

共160个独立变量:
vars={A1, A2, B1, B2, C1, C2, D1, D2, E1, E2, F1, F2, G1, G2, H1, H2, I1, I2, J1, J2, K1, K2, L1, L2, M1, M2, N1, N2, O1, O2, P1, P2, Q111,Q112, Q121, Q122, Q131, Q132, Q141, Q142, Q211, Q212, Q221, Q222, Q231, Q232, Q241, Q242, Q311, Q312, Q321, Q322, Q331, Q332, Q341, Q342, Q411, Q412, Q421, Q422, Q431, Q432, Q441, Q442, Q511, Q512, Q521, Q522, Q531, Q532, Q541, Q542, Q611, Q612, Q621, Q622, Q631, Q632, Q641, Q642, Q711, Q712, Q721, Q722, Q731, Q732, Q741, Q742, Q811, Q812, Q821, Q822, Q831, Q832, Q841, Q842, Q911, Q912, Q921, Q922, Q931, Q932, Q941, Q942, Q1011, Q1012, Q1021, Q1022, Q1031, Q1032, Q1041, Q1042, Q1111, Q1112, Q1121, Q1122, Q1131, Q1132, Q1141, Q1142, Q1211, Q1212, Q1221, Q1222, Q1231, Q1232, Q1241, Q1242, Q1311,Q1312, Q1321, Q1322, Q1331, Q1332, Q1341, Q1342, Q1411, Q1412, Q1421, Q1422, Q1431, Q1432, Q1441, Q1442, Q1511, Q1512, Q1521, Q1522, Q1531,Q1532, Q1541, Q1542, Q1611, Q1612, Q1621, Q1622, Q1631, Q1632, Q1641, Q1642};

虽然用Solve 不能解, 但是LinearSolve 可以. Wolfram 应该把这两个函数合并起来.

解法接上面代码:
{b, A} = Normal[CoefficientArrays[eqns,vars]];
solution=LinearSolve[A,-b]

0 0
原创粉丝点击