
则y''=dy(dy/dt)/dt=dp/dt=(dp/dy)(dy/dt)=pdp/dy
后敏正面就是简单的积分了,先求出p=f(y),再求出y=g(t)
后面那个有点常数变易的味道,不知道具体步骤,应该还孙薯是如上换元的方法求解.
先在一个空白的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曲线
>缓橘枣>syms x(t) y(t) r d a br='1'd='0.5'a='0.1'b='扰拆0.02'
[x,y]=dsolve(diff(x)==(r-a*y)*x,diff(y)==-(d-b*x)*y,x(0)==25,y(0)==2)
Warning: Explicit solution could not be found.
>In dsolve at 194
x =
[ empty sym ]
y =
[]
说伍芹明无解。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)