Matlab求解常微分方程组


求解这个常微分方程组。

\left\{ \begin{array}{l} \frac{d}{​{dt}}(P{R^5}) = a{P^2}{R^5}\\ \\ \frac{​{​{d^2}R}}{​{d{t^2}}} = {R^2P} \end{array} \right.        

初始条件为

R(0) = \frac{1}{\varepsilon }    \frac { d R } { d t } ( 0 ) = - 1    \frac { d ^ { 2 } R } { d t ^ { 2 } } ( 0 ) = \varepsilon ^ { 3 }    P ( 0 ) = \varepsilon ^ { 5 } \

其中ε取0.01,a是有上限的参数,求解方程的目的其实是找出a的临界值。

syms y(t) 
for i = [0:0.5:1.5,1.763]   %1.763是临界值
    eqn = diff(diff(y,2)*y^3) == i*diff(y,2)^2*y;


    %化三阶方程为一阶
    V = odeToVectorField(eqn);
    M = matlabFunction(V,'vars',{'t','Y'});
    e = 0.01;

    % 坐标范围和初始条件
    interval = [0 2/e];
    yInit = [1/e -1 e^3];
    ySol = ode45(M,interval,yInit);

    tValues =  linspace(0,2/e,1000);
    yValues = deval(ySol,tValues,1);
    pValues = deval(ySol,tValues,3)./yValues.^2;
    vValues = yValues.^3;
    plot(tValues,yValues)
    hold on
end

ylim([-10 100])
xlabel('$\hat{t}$','interpreter','latex');
ylabel('$\hat{R}$','interpreter','latex');
text(60,80,'\epsilon=0.01','FontName','Times New Roman','FontSize',15)
lgd = legend(num2str(0),num2str(0.5),num2str(1),num2str(1.5),num2str(1.763));
title(lgd,'\xi_n_o_\alpha')
set(gca,'LineWidth',2)
set(findall(gcf,'type','line'),'linewidth',2)
set(gca,'FontName','Times New Roman','FontSize',15)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值