文档介绍:Matlab 实现四阶龙格- 库塔发求解微分方程从理论上讲, 只要函数在某区间上充分光滑, 那么它可以展开为泰勒级数, 因此在该区间上的函数值可用各阶导数值近似地表示出来, 反之其各阶导数值也可用某些函数值的线性组合近似地表示出来。龙格- 库塔法就是将待求函数)(ty 展开为泰勒级数,并用方程函数),(yft 近似其各阶导数, 从而迭代得到)(ty 的数值解。具体来说, 四阶龙格- 库塔迭代公式为)22(6 1 43211kkkkh nn??????yy),( 1nntkyf?)2/,2/( 12 hk htk nn???yf)2/,2/( 23 hk htk nn???yf),( 33 hk htk nn???yf 实验内容: 已知二阶系统 21xx??, 212?????,0)0()0( 21??xx ,u 为单位阶跃信号。用四阶龙格- 库塔法求数值解。分析步长对结果的影响。实验总结: 实验报告要求简要的说明实验原理;简明扼要地总结实验内容; 编制 m 文件,并给出运行结果。报告格式请按实验报告模板编写。进入 matlab , Step1 : choose way1 or way2 way1 ): 可以选择直接加载 M 文件(函数 M 文件)。 way2 ): 点击 new —— function ,先将 shier (函数 1 文本文件)复制运行; 点击 new —— function ,再将 RK (函数 2 文本文件)运行; 点击 new —— function ,再将 finiRK (函数 3 文本文件)运行; Step2 : mand 页面输入下面四句。[t,k]=finiRK45([0;0],150);% 迭代 150 次,步长=20/150 [t1 k1]=ode45(***@shier,[0 -10],[0 0]);% 调用 matlab 自带四阶龙格- 库塔,对比结果[t2 k2]=ode45(***@shier,[0 10],[0 0]); plot(t,k(1,:),'-',t1,k1(:,1),'*',t2,k2(:,1),'^')% 在图形上表示出来补充:改变步长影响数据的准确性。函数 1 shier : function dx =shier(t,x) %UNTITLED Summary of this function goes here % Detailed explanation goes here dx=zeros(2,1); dx(1)=x(2); dx(2)=-*x(1)-*x(2)+**(sign(t)-sign(-t)); end 函数 2 RK45: function [t,y]=RK45(f,b,ch0,N)%f 为函数句柄, b 为上限(为了方便 fniRK45 这% 里默认下限为 0), ch0 为初值, N 为迭代次数。 h=b/N;% 计算步长 y=zeros(2,N);% 开辟