何必手算?MATLAB求解微分方程|Matlab符號(hào)計(jì)算


clc
close all
syms Uc(t) R L C Us i(t)
eqn = L*C*diff(Uc, t, 2)+R*C*diff(Uc, t)+Uc == 0;
DUc = diff(Uc, t);
%定義初始條件
cond = [Uc(0)==Us, DUc(0)==0];
uc = dsolve(eqn,cond);
uc = subs(uc, [Us C R L], [10 1e-6 4e3 1]);
vpa(uc, 4)
i = -C*diff(uc, t);
i = subs(i, C, 1e-6);
vpa(i*1000, 3)
ul = L*diff(i, t);
ul = subs(ul, L, 1);
vpa(ul, 4)
fplot(uc, [0 0.01], 'LineWidth', 2);
grid on;
hold on;
fplot(i*1000, [0 0.01], 'LineWidth', 2);
fplot(ul, [0 0.01], 'LineWidth', 2);
legend('uc', 'i', 'ul');
ylim([-1 10]);
標(biāo)簽: