在matlab中解决ode时遇到问题

时间:2015-04-30 04:52:21

标签: matlab

我是matlab的新手,想要解决颂歌的问题

UIViewController

我知道x(0)= y(0)= 0.9,a = 1,b = 1.9;

理想情况下,我想最终绘制解决方案。 我在网上看了,但我很难搞清楚怎么做。任何帮助都会很棒。感谢。

1 个答案:

答案 0 :(得分:0)

主程序:

clc;
clear all;
close all;

ts = 0;
te = 100;
dt_ode = 0.025;

t_ode = ts : dt_ode : te;

a = 1.0;
b = 1.9;
x0 = 0.9; % x(0)
y0 = 0.9; % y(0)

options=[];
[t_ode, res_ode] = ode45(@user_fun, t_ode, [x0 y0], options, a, b);

% Plot:
subplot(2,1,1);
plot(t_ode, res_ode(:,1)); 
xlabel('t');
ylabel('x');
subplot(2,1,2);
plot(t_ode, res_ode(:,2)); 
xlabel('t');
ylabel('y');

创建名为user_fun.m的文件:

function zdot = user_fun(t,z,a,b)
% x == z(1)
% y == z(2)

zdot(1) = a - b*z(1) + (z(1)^2)*z(2) - z(1);
zdot(2) = b*z(1) - (z(1)^2)*z(2);

zdot=zdot'; % transpose

此文件定义了微分方程组。我用z来重命名x和y。