MATLAB Function
ode45: |
|
Solve initial value problems for ordinary
differential equations (ODEs) |
Example 1.
An example of a system is the system of differential equations describing the motion of a rigid body without external forces.
|
|
|
1- we create a function rigid containing the equations |
||
|
function dy = rigid(t,y) dy = zeros(3,1); % a column
vector dy(1) = y(2) * y(3); dy(2) = -y(1) * y(3); dy(3) = -0.51 * y(1) * y(2); |
|
2- we write this command to solve the problem |
||
|
[t,y] = ode45('rigid',[0 12],[0 1 1]); |
|
3- we write these commands to plot the graph |
||
|
plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.') legend('y_1','y_2','y_3','Location','eastoutside'); |
|
|
|
|
|
|
|
|
|
|
4- we write this command to see the values |
||
|
[t,y] |
|
|
t
y1 y2 y3 0 0 1.0000
1.0000 0.0001
0.0001 1.0000 1.0000 0.0001
0.0001 1.0000 1.0000 0.0002
0.0002 1.0000 1.0000 0.0002
0.0002 1.0000 1.0000 0.0005
0.0005 1.0000
1.0000 0.0007
0.0007 1.0000 1.0000 0.0010
0.0010 1.0000 1.0000 0.0012
0.0012 1.0000 1.0000 0.0025
0.0025 1.0000 1.0000 0.0037
0.0037 1.0000 1.0000 0.0050
0.0050 1.0000
1.0000 0.0062
0.0062 1.0000 1.0000 0.0125
0.0125 0.9999 1.0000 0.0188
0.0188 0.9998 0.9999 0.0251
0.0251 0.9997 0.9998 0.0313
0.0313 0.9995 0.9997 0.0627
0.0627 0.9980 0.9990 0.0941
0.0939 0.9956 0.9977 0.1255
0.1250 0.9922 0.9960 0.1569
0.1560 0.9878 0.9938 0.2760
0.2709 0.9626 0.9811 0.3951
0.3803 0.9249 0.9624 0.5143
0.4824 0.8760 0.9388 0.6334
0.5758 0.8176 0.9115 0.7975
0.6888 0.7249 0.8707 0.9616
0.7829 0.6222 0.8291 1.1257
0.8583 0.5129 0.7900 1.2898
0.9162 0.4002 0.7560 1.5240
0.9713 0.2371 0.7201 1.7582
0.9971 0.0731 0.7019 1.9924
0.9956 -0.0909 0.7030 2.2267
0.9666 -0.2546 0.7232 2.5015
0.8954 -0.4458 0.7691 2.7764
0.7764 -0.6300 0.8322 3.0513
0.6052 -0.7953 0.9014 3.3262
0.3838 -0.9231 0.9616 3.5080
0.2146 -0.9764 0.9880 3.6898
0.0355 -0.9992 0.9996 3.8717
-0.1451 -0.9894 0.9947 4.0535
-0.3191 -0.9478 0.9739 4.2353
-0.4785 -0.8782 0.9400 4.4172
-0.6180 -0.7864 0.8976 4.5990
-0.7347 -0.6784 0.8515 4.7808
-0.8280 -0.5602 0.8063 4.9737
-0.9030 -0.4290 0.7642 5.1666
-0.9552 -0.2949 0.7311 5.3594
-0.9868 -0.1600 0.7093 5.5523
-0.9992 -0.0250 0.7003 5.8266
-0.9857 0.1667 0.7101 6.1008
-0.9331 0.3584 0.7454 6.3750
-0.8367 0.5467 0.8016 6.6493
-0.6911 0.7223 0.8696 6.8774
-0.5294 0.8482 0.9258 7.1056
-0.3351 0.9421 0.9710 7.3338
-0.1175 0.9929 0.9964 7.5619
0.1096 0.9939 0.9969 7.7901
0.3287 0.9443 0.9719 8.0182
0.5244 0.8517 0.9273 8.2464
0.6871 0.7269 0.8717 8.4745
0.8132 0.5817 0.8142 8.6643
0.8912 0.4534 0.7715 8.8541
0.9467 0.3217 0.7370 9.0439
0.9817 0.1889 0.7131 9.2337
0.9981 0.0561 0.7014 9.5047
0.9909 -0.1335 0.7066 9.7758
0.9459 -0.3232 0.7373 10.0468
0.8594 -0.5105 0.7894 10.3179
0.7257 -0.6876 0.8552 10.6096
0.5228 -0.8524 0.9281 10.9013
0.2695 -0.9631 0.9815 11.1930
-0.0118 -0.9990 0.9992 11.4847
-0.2936 -0.9540 0.9763 11.6136
-0.4098 -0.9102 0.9548 11.7424
-0.5169 -0.8539 0.9279 11.8712
-0.6135 -0.7874 0.8974 12.0000 -0.6987 -0.7128 0.8650 |
|
All above commands can be invoked by using the following two files math202.m and rigid.m |
||