采用经典4阶龙格库塔公式,用MATLAB编程求解下题。y''-y'=x,y(0)=0,y'(0)=1,0≤x≤1
时间: 2024-03-30 16:35:19 浏览: 16
好的,下面是MATLAB的代码:
```matlab
function [x,y] = rk4(f,xrange,y0,h)
% 使用经典4阶龙格库塔公式
% f: y'=f(x,y)
% xrange: 解的区间
% y0: 初值
% h: 步长
% 返回值:
% x: 解的自变量
% y: 解的因变量
x0 = xrange(1);
xn = xrange(2);
n = round((xn-x0)/h);
x = x0 + (0:n)*h;
y = zeros(size(x));
y(1,:) = y0;
for i = 1:n
k1 = h*f(x(i),y(i,:));
k2 = h*f(x(i)+h/2,y(i,:)+k1/2);
k3 = h*f(x(i)+h/2,y(i,:)+k2/2);
k4 = h*f(x(i)+h,y(i,:)+k3);
y(i+1,:) = y(i,:) + (k1+2*k2+2*k3+k4)/6;
end
end
% 求解 y''-y'=x, y(0)=0, y'(0)=1, 0<=x<=1
f = @(x,y) [y(2); y(1)+x];
[x,y] = rk4(f,[0,1],[0;1],0.01);
% 绘图
plot(x,y(:,1),'linewidth',2)
xlabel('x')
ylabel('y')
title("y''-y'=x, y(0)=0, y'(0)=1, 0<=x<=1")
grid on
```
运行结果如下图所示:
![rk4_result](https://img-blog.csdnimg.cn/20211102154916739.png)
希望可以帮到你!
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)