编写Matlab程序求常微分方程组的解运行成功再给分

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 15:59:34
编写Matlab程序求常微分方程组的解运行成功再给分

编写Matlab程序求常微分方程组的解运行成功再给分
编写Matlab程序求常微分方程组的解
运行成功再给分

编写Matlab程序求常微分方程组的解运行成功再给分
先在一个空白的M文件里创建一个M函数,文件名要与函数名相同,例如:
文件名:differential.m
函数内容:
function [dxdt] = differential(t,x)
% x:二维列向量,x(1)代表f(t)的值,x(2)代表g(t)的值
% dxdt:与x对应的对时间导数项
% 这里假设a=b=1
a = 1;
b = 1;
dxdt = zeros(2,1);
dxdt(1) = a*x(1)+b*x(2);
dxdt(2) = -a*x(1)+b*x(2);
end
M函数编写完成后,在相同文件目录下,再建一个空的M文件,文件名任意,写入如下内容:
t0 = 0; % 起始时刻
tf = 10; % 终止时刻
f0 = 10; % f的初始值
g0 = 10; % g的初始值
Hfunc = @differential; % 创建函数句柄
[T,Y] = ode45(Hfunc,[t0 tf],[f0 g0]); % 解算
%运行完后,结果以列向量形式存储,时间存在T中,f存在Y的第一列中(Y(:,1)),g存在Y的第
%二列中(Y(:,2)),可以执行如下绘图指令查看结果
figure(1)
grid on
plot(T,Y(:,1)) % 绘制t-f曲线
figure(2)
grid on
plot(T,Y(:,2)) % 绘制t-g曲线