Matlab初学——求解多元复杂方程组得出解析解与数值解

syms R1 R2 C1 C2;
eqns =[R1/(50*pi*C1*R1+1 )-R1/(10*pi*C1*R1+1)+R2/(50*pi*C2*R2+1)-R2/(10*pi*C2*R2+1) == -3.994933399101286e-06,
 R1/(100*pi*C1*R1+1)-R1/(10*pi*C1*R1+1)+R2/(100*pi*C2*R2+1)-R2/(10*pi*C2*R2+1) == -8.684603855561163e-06,
 R1/(200*pi*C1*R1+1)-R1/(10*pi*C1*R1+1)+R2/(200*pi*C2*R2+1)-R2/(10*pi*C2*R2+1) == -1.107385456040715e-05,
 R1/(300*pi*C1*R1+1)-R1/(10*pi*C1*R1+1)+R2/(300*pi*C2*R2+1)-R2/(10*pi*C2*R2+1) == -1.268323914108138e-05];
vars = [R1 R2 C1 C2];
[solR1 solC1 solR2 solC2] = solve(eqns,vars);%此处不加分号可直接输出解析解,与数值解共同显示
solutions = [solR1 solC1 solR2 solC2];  %将各对解析解放到一个矩阵中
fans=vpa(solutions,4)  % 将矩阵中的解析解变换成数值解,并保留到小数点后四位

该命令主要实现的是四元分数方程组求解出四个未知量,主要用到了两个关键函数:solve函数、vpa函数,关于solve与vpa的使用方法在matlab help中可以具体查询使用。链接如下:

Equations and systems solver - MATLAB solve - MathWorks 中国https://ww2.mathworks.cn/help/releases/R2021b/symbolic/solve.html?browser=F1help&requestedDomain=cn

Variable-precision arithmetic (arbitrary-precision arithmetic) - MATLAB vpa - MathWorks 中国https://ww2.mathworks.cn/help/releases/R2021b/symbolic/vpa.html?browser=F1help

首先定义了四个变量R1 R2 C1 C2;

其次确定四个方程eqns;

然后指定变量的顺序,定义了求解器返回解的顺序。

求解结果如下:

fans =
 
[2.193e-7, 1.917e-5, -8826.0,    73.0]
[1.917e-5, 2.193e-7,    73.0, -8826.0]


版权声明:本文为weixin_42236365原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。