matlab求解常微分

dy^2/dx^2=cos2x-y
y|x=0 =1
dy/dx|x=0 =0

% 设定步长和终止点
h = 0.1;
xend = 10;
% 初始化结果数组
x = 0:h:xend;
y = zeros(2, length(x));
% 设定初值
y(:,1) = [1; 0];
% 求解常微分方程
for i = 1:length(x)-1
    k1 = h*[y(2,i); cos(2*x(i))-y(1,i)];
    k2 = h*[y(2,i)+0.5*k1(1); cos(2*(x(i)+0.5*h))-y(1,i)-0.5*k1(2)];
    k3 = h*[y(2,i)+0.5*k2(1); cos(2*(x(i)+0.5*h))-y(1,i)-0.5*k2(2)];
    k4 = h*[y(2,i)+k3(1); cos(2*(x(i)+h))-y(1,i)-k3(2)];
    y(:,i+1) = y(:,i) + (k1+2*k2+2*k3+k4)/6;
end
% 绘制结果
plot(x, y(1,:))
xlabel('x')
ylabel('y')

望采纳

这是就可以了

fun = @(x,y)[y(2); cos(2*x)-y(1)];
[x, y] = ode45(fun, [0 10], [1;0]);
plot(x, y(:,1))