سیستم های خطی و غیرخطی
%Solving a System of Nonlinear ODEs
% Define initial time and final time
t0 = 0;
tfinal = 20;
time = [t0 tfinal];
% Define initial conditions for the state variables
x0 = [0; 1; 1];
% Solve the system of ODEs using ode45
[t, x] = ode45(@(t, x) [x(2)*x(3); -x(1)*x(3); -1/2*x(1)*x(2)], time, x0); %xdot(1)=(x(2)*x(3)); xdot(2)=(-x(1)*x(3)); xdot(3)=(-1/2*x(1)*x(2));
% Extract the solution for each state variable
x1 = x(:, 1);
x2 = x(:, 2);
x3 = x(:, 3);
% Plot the solution for each state variable
plot(t, x1, t, x2, t, x3)
title('Solution of System of ODEs')
xlabel('Time')
ylabel('State Variables')
grid on
.
.
%%
%Solving a System of Linear ODEs
% Define initial time and final time
t0 = 0;
tfinal = 10;
time = [t0 tfinal];
% Define initial conditions for the state variables
x0 = [1; 0];
% Define parameters for the system of ODEs
a = 1;
b = 1;
% Solve the system of ODEs using ode45
[t, x] = ode45(@(t, x) [-a*x(1) + b*x(2); a*x(1) - b*x(2)], time, x0);
% Extract the solution for each state variable
x1 = x(:, 1);
x2 = x(:, 2);
% Plot the solution for each state variable
plot(t, x1, t, x2)
title('Solution of System of ODEs')
xlabel('Time')
ylabel('State Variables')
grid on
.
.
این کد دو سیستم مختلف معادلات دیفرانسیل معمولی (ODE) را با استفاده از تابع ode45 MATLAB که یک روش رایج برای حل عددی ODE ها است، حل می کند. در اینجا توضیح مختصری در مورد هر بخش آورده شده است:
.
تعریف بازه زمانی: متغیرهای t0 و tfinal زمان شروع و پایان شبیه سازی را تعریف می کنند و زمان برداری است که حاوی این دو مقدار است.
تنظیم شرایط اولیه: متغیر x0 بردار است که شامل شرایط اولیه برای متغیرهای حالت سیستم است.
حل ODE ها: تابع ode45 با سه آرگومان فراخوانی می شود: تابعی که سیستم ODE ها، بازه زمانی و شرایط اولیه را تعریف می کند. تابعی که ODE ها را تعریف می کند یک تابع ناشناس است که در زمان t و حالت x می گیرد و بردار مشتقات را برمی گرداند.
استخراج راهحلها: راهحلهای هر متغیر حالت از خروجی دوم ode45 استخراج میشوند، که ماتریسی است که در آن هر ستون با یک متغیر حالت مطابقت دارد.
راهحلهای نموداری(پلات): سپس با استفاده از تابع نمودار متلب، جوابها بر حسب زمان ترسیم میشوند.
.
بلوک اول کد یک سیستم از سه ODE غیرخطی را حل می کند، در حالی که بلوک دوم یک سیستم از دو ODE خطی با پارامترهای a و b را حل می کند. هر دو سیستم به شکل فضای حالت نشان داده می شوند، که یک روش رایج برای نمایش سیستم های پویا در تئوری کنترل و پردازش سیگنال است.


