四阶Runge-Kutta求一阶常微分方程
四阶Runge-Kutta求一阶常微分方程:y'(x)=1/2*(-y+x*x+4*x-1),x[0,0.5],y(0=0)编程实现用的数值解(h=0.01)。...
四阶Runge-Kutta求一阶常微分方程:y'(x)=1/2*(-y+x*x+4*x-1),x[0,0.5],y(0=0)编程实现用的数值解(h=0.01)。
展开
4个回答
展开全部
用matlab编程,四阶Runge-Kutta求一阶常微分方程,其方法:
1、建立一阶常微分方程自定义函数,f=func(x,y)。
function f = func(x,y)
f=1/2*(-y+x*x+4*x-1);
2、利用四阶Runge-Kutta算法,定义 runge_kutta(func,y0,h,a,b) 函数。
3、用plot函数,绘制常微分方程解的图形。
实现主代码:
y0=[0]; %初值
a=0;b=0.5;h=0.01;
[x,y] = runge_kutta(@(x,y)func(x,y),y0,h,a,b);
disp('数值解')
disp(' x y')
y=y(1,:);
A=[x' y'];
disp(A)
plot(x1,y1,'*',x,y,'.-','LineWidth',1.5),grid on
legend('精确解y','数值解y') %'Location','NorthEastOutside'
xlabel('x'),ylabel('y');
title('RK4数值解与精确解的对比');
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询