用MATLAB算ode23、ode45求解初值等问题

2025-06-29 09:52:01
推荐回答(1个)
回答1:

编写M文件cdq.m

function dy=cdq(x,y)

dy=zeros(2,1);

dy(1)=y(2);

dy(2)=-2*y(2)-y(1)+cos(x);

编写M文件cdq1.m

function dY=cdq1(x,Y)

dY=[0 1;-1 -2]*Y+[0;1]*cos(x);

命令窗口

>> subplot(1,2,1),ode23(@ cdq,[0,2*pi],[0,3/2]),grid

>> subplot(1,2,2),ode45(@ cdq,[0,2*pi],[0,3/2]),grid

>> [x,Y]=ode23(@ cdq1,[0,2*pi],[0,3/2]),grid

x =

         0

    0.0001

    0.0003

    0.0017

    0.0083

    0.0417

    0.1276

    0.2556

    0.4238

    0.6344

    0.8650

    1.0990

    1.3340

    1.5637

    1.8325

    2.2382

    2.6170

    2.9650

    3.2904

    3.4980

    3.7056

    3.9507

    4.2760

    4.6394

    4.7487

    4.8580

    4.9902

    5.1739

    5.4015

    5.6654

    5.9586

    6.2249

    6.2832

Y =

         0    1.5000

    0.0001    1.4999

    0.0005    1.4994

    0.0025    1.4967

    0.0124    1.4834

    0.0608    1.4188

    0.1760    1.2638

    0.3244    1.0602

    0.4831    0.8328

    0.6329    0.5964

    0.7450    0.3810

    0.8118    0.1941

    0.8376    0.0292

    0.8275   -0.1145

    0.7763   -0.2626

    0.6317   -0.4416

    0.4422   -0.5515

    0.2416   -0.5947

    0.0495   -0.5812

   -0.0677   -0.5454

   -0.1754   -0.4902

   -0.2851   -0.4029

   -0.3928   -0.2583

   -0.4528   -0.0735

   -0.4576   -0.0160

   -0.4562    0.0412

   -0.4463    0.1088

   -0.4180    0.1981

   -0.3613    0.2975

   -0.2700    0.3911

   -0.1443    0.4611

   -0.0172    0.4891

    0.0114    0.4904

>> [x,Y]=ode45(@ cdq1,[0,2*pi],[0,3/2]),grid

x =

         0

    0.0000

    0.0001

    0.0001

    0.0001

    0.0003

    0.0005

    0.0006

    0.0008

    0.0016

    0.0025

    0.0033

    0.0042

    0.0083

    0.0125

    0.0167

    0.0209

    0.0418

    0.0628

    0.0837

    0.1046

    0.2093

    0.3140

    0.4186

    0.5233

    0.6667

    0.8101

    0.9535

    1.0969

    1.2540

    1.4111

    1.5682

    1.7252

    1.8823

    2.0394

    2.1965

    2.3536

    2.5106

    2.6677

    2.8248

    2.9819

    3.1390

    3.2960

    3.4531

    3.6102

    3.7497

    3.8892

    4.0288

    4.1683

    4.3147

    4.4612

    4.6076

    4.7540

    4.8899

    5.0258

    5.1617

    5.2976

    5.4425

    5.5874

    5.7323

    5.8773

    5.9787

    6.0802

    6.1817

    6.2832

Y =

         0    1.5000

    0.0001    1.4999

    0.0001    1.4999

    0.0002    1.4998

    0.0002    1.4997

    0.0005    1.4994

    0.0007    1.4991

    0.0010    1.4987

    0.0012    1.4984

    0.0025    1.4967

    0.0037    1.4951

    0.0050    1.4934

    0.0062    1.4917

    0.0124    1.4834

    0.0186    1.4751

    0.0248    1.4669

    0.0309    1.4587

    0.0610    1.4185

    0.0903    1.3792

    0.1188    1.3410

    0.1465    1.3037

    0.2737    1.1305

    0.3838    0.9767

    0.4787    0.8393

    0.5599    0.7156

    0.6515    0.5640

    0.7226    0.4291

    0.7752    0.3073

    0.8111    0.1958

    0.8329    0.0833

    0.8377   -0.0207

    0.8268   -0.1171

    0.8014   -0.2061

    0.7625   -0.2876

    0.7114   -0.3610

    0.6495   -0.4259

    0.5781   -0.4813

    0.4989   -0.5265

    0.4134   -0.5607

    0.3234   -0.5834

    0.2307   -0.5941

    0.1374   -0.5928

    0.0452   -0.5792

   -0.0439   -0.5536

   -0.1282   -0.5166

   -0.1975   -0.4751

   -0.2603   -0.4258

   -0.3160   -0.3697

   -0.3633   -0.3078

   -0.4033   -0.2380

   -0.4327   -0.1644

   -0.4513   -0.0883

   -0.4587   -0.0114

   -0.4554    0.0591

   -0.4426    0.1277

   -0.4208    0.1933

   -0.3903    0.2547

   -0.3490    0.3143

   -0.2996    0.3666

   -0.2432    0.4107

   -0.1810    0.4457

   -0.1348    0.4644

   -0.0869    0.4781

   -0.0379    0.4867

    0.0117    0.4902