⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex0803.m

📁 包含matlab用到的所有数学计算
💻 M
字号:
%用三种不同方法解微分方程
clear, clf
x0=0;
xt=2;
Num=100;
h=(xt-x0)/(Num-1);
x =x0+[0:Num]*h;
a = 1; 
yt = 1-exp(-a*x); %真值解
fun = inline('-y + 1','x','y'); %用inline构造函数f(x,y)
y0 = 0; %设定函数初值
PointNum = 4; %设定取点数
[x1,ye] = MyEuler(fun,x0,xt,y0,PointNum);
[x2,yh] = MyEulerPro(fun,x0,xt,y0,PointNum);
[x3,yr] = MyRunge_Kutta(fun,x0,xt,y0,PointNum);
plot(x,yt,'k', x1,ye,'b:', x2,yh,'g:', x3,yr,'r:')
legend('真值','简单欧拉法解','改进欧拉法解','Runge-Kutta法解')
hold on
plot(x1,ye,'bo',x2,yh,'b+', x3,yr,'r*')
PointNum= 1000; %估计各算法运行PointNum步迭代的时间
tic  %计时开始
[x1,ye] = MyEuler(fun,x0,xt,y0,PointNum);
time_Euler = toc %得到欧拉法的运行时间
tic
[x1,yh] = MyEulerPro(fun,x0,xt,y0,PointNum); 
time_EulerPro = toc
tic
[x1,yr] = MyRunge_Kutta(fun,x0,xt,y0,PointNum); 
time_RK4 = toc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -