模拟这个是画x关于t的图吗?请问如何编程!
f(x)=ax-bx^2
你好,这就是用欧拉法求解微分方程,鉴于a和b是随机的数,得到的结果不唯一,以下代码仅供参考:
tspan就是t的范围(t的最大值),你的图像不显示是因为f(x(i))是NaN【x(i)是不知道的,0只是初始化的值】,现在改为f(x(i-1))即可
clc;clear
a = rand(1);
b = rand(1);
D=0.25;
Q=0.50;
alpha=0.3;
beta=-0.1;
gw1 = @(dt)(-4*D*dt*log(a))^(1/2)*cos(2*pi*b);%这里自己改了
gw2 = @(dt)(-4*Q*dt*log(a))^(1/2)*cos(2*pi*b);
f = @(x) alpha*x - beta*x*log(x);
x0 = 0.1;
dt = 10^(-3);
tspan = 5;%t取到多大
t = 0:dt:tspan;
x = zeros(size(t));
x(1) = x0;
for i = 2:1:numel(x)
x(i) = x(i-1) + f(x(i-1))*dt + gw1(dt)+gw2(dt);
end
plot(t,x)%画x-t图