在MATLAB中求解二阶微分方程的参数变化方法
MATLAB 可用于求解数值二阶和高阶常微分方程。在本文中,我们将看到在 MATLAB 中求解二阶微分方程的参数变化方法。
第 1 步:让给定的以“x”表示的二阶微分方程为:
第 2 步:然后,我们将其简化为辅助方程(AE)形式:_{r}{^2}+ pr +Q = 0
第 3 步:然后,我们通过以下关系找到上述 AE 的行列式:
第 4 步:如果上面找到的行列式是正的(2 个不同的实根 r 1和 r 2 ),那么补函数(CF) 将是:
第 5 步:如果上面找到的行列式为零(1 个唯一实根,r 1 =r 2 =r),则补函数(CF) 将是:
第 6 步:如果上面找到的行列式是负数(复根,r = α ± iβ),则补函数(CF) 将是:
步骤7:在所有上述3种情况下,C 1的系数称为'y 1 ',C 2的系数称为'y 2 ' 。
第 8 步:然后我们通过关系找到 Wronskian(W):
第 9 步:找到“W”后,我们通过以下关系找到特定积分 (PI):
第 10 步:最后通过以下关系找到二阶微分方程的通解(GS):
例子:
Matlab
% MATLAB code for Method of Variation of Parameters
% to Solve 2nd Order Differential
% Equations in MATLAB
clear all
clc
% To Declare them as Variables
syms r c1 c2 x
disp("Method of Variation of Parameters to Solve
2nd Order Differential Equations in MATLAB | GeeksforGeeks")
E=input("Enter the coefficients of the 2nd Order Differential equation");
X=input("Enter the R.H.S of the 2nd order Differential equation");
% Coefficients of the 2nd Order Differential Equations
AE=a*r^2+b*r+c;
a=E(1); b=E(2); c=E(3);
S=solve(AE);
% Roots of Auxiliary Equation (AE)
r1=S(1); r2=S(2);
% Determinant of Auxiliary Equation (AE)
D=b^2-4*a*c;
if D>0
y1=exp(r1*x);
y2=exp(r2*x);
% Complementary Function
cf=c1*y1+c2*y2
elseif D==0
y1=exp(r1*x);
y2=x*exp(r2*x);
% Complementary Function
cf=c1*y1+c2*y2
else
alpha=real(r1);
beta=imag(r2);
y1=exp(alpha*x)*cos(beta*x);
y2=exp(alpha*x)*sin(beta*x);
% Complementary Function
cf=c1*y1+c2*y2
end
W=simplify(y1*diff(y2,x)-y2*diff(y1,x));
% Particular Integral
PI=simplify((-y1)*int(y2*X/W) + (y2)*int(y1*X/W))
% General Solution
GS=simplify(cf+PI)
输出:
Input: y'' -6y' + 25 = e2x + sinx + x
Input: y'' -2y' + 3 = x3 + cosx