在用matlab解方程时经常用到符号变量syms,在后续对得到的解进行分析时,本小白采用的方法是用函数subs()进行数据的带入计算。但是方程过于复杂,数据量特别大的时候,发现这种做法非常非常慢!
直接向量化操作求数据是最快的,但是解方程有时候根本解不出来显式解,无法直接向量化操作。这时候可以利用for循环去求解N个数值方程的解来构成数据集,这样做可以避免解符号方程以及用subs求数据集
解一个符号方程,再subs代入N组数据 ,不如直接解N个数值方程!!!
---------------------------------------------------------------------------------(●'◡'●)----------------------------------------------------------------------------------
这里列举我解过的一个矩阵方程加以说明,求解这个含参矩阵J_open的特征值,并绘图分析特征值随参数PL的变化趋势
优化前:
clc;
clear;
tic;
syms P_L;%变量
%参数值如下:
R=4;
C1=24e-6;
C2=24e-6;
L1=360e-6;
L2=480e-6;
r1=0.5;
r2=0.5;
VIN=24;
VREF=36;
D=VREF/(VIN+VREF);
n=D*VIN/(1-D);
m=(D/(1-D))^2*r1+r2;
delta=n^2-4*m*P_L*(1+m/R);
V2OL=(n+sqrt(delta))/(2*(1+m/R)