西安理工大学应用数学系 实验三 常微分方程数值解 西安理工大学应用数学系 【实验目的】 1 了解微分方程数值解的概念; 2 掌握解常微分方程初值问题的Euler方法、改进 的Euler方法和经典Runge-Kutta方法,能用程序 实现这些方法,学习一些科学计算方法和简单的 编程技术。 3 学习、掌握Matlab软件有关的命令 。 西安理工大学应用数学系 【实验准备】 1. 常微分方程初值问题及其数值解法 常微分方程初值问题: ? y?( x) ? f ( x, y( x)), a ? x ? b (1) ? ? y(a) ? y0 如果f(x,y)在 [a,b]×(-∞,+∞)上连续,且关于y 满足 Lipschtz 条件: | f ( x, y1 ) ? f ( x, y2 ) |? L | y1 ? y2 | 则(1)在区间[a,b]上存在唯一解 y=y(x). 西安理工大学应用数学系 常微分方程初值问题数值解:常微分方程初值问 题的解 y (x) 在[a, b]上的有限个值 y( xk ) 的近似值 yk 称为常微分方程初值问题数值解,其中 xk ? xk ?1 ? hk ?1 , k ? 1,2,3,?, N. xk 称为节点, k h 称为步长。 通常,步长h不变,取为等距步长 hk ? h ? (b ? a) / N , N 为等分区间[a,b]分割数。 西安理工大学应用数学系 常微分方程初值问题数值解法:常微分方程初值 问题的数值解法很多,我们在这里只介绍以下四 种方法: (1) Euler方法:将区间[a,b] N 等分,步长为 h=(b-a)/N ,得到N+1个分点 xi = x0 + ih, i = 0,1, 2,L N 已知 y=y(x) 在 x0 处的函数值为 y0 ,取区间 [ x , x i i+ 1 ] , 方程两端在此区间上积分,有 ? xi?1 xi y?( x)dx ? ? xi?1 xi f ( x, y( x))dx 西安理工大学应用数学系 即 y( xi ?1 ) ? y( xi ) ? ?x f ( x, y( x))dx 右边的积分用左矩形公式代替,则有 i xi?1 y( xi+ 1 ) - y( xi ) hf ( xi , y( xi )) y 这个近似值我们表示为 yi+ 1 = yi + hf ( xi , yi ) O xi xi+1 x 于是我们得到求解问题(1)的Euler法: ? yi ?1 ? yi ? h( f ( xi , yi ), i ? 1,2,?, N ? 1 ? ? y0 ? y( x0 ) (2) 西安理工大学应用数学系 y( xi ?1 ) ? y( xi ) ? ? xi?1 xi f ( x, y( x))dx (2)改进的Euler方法(梯形法):Euler法中是 对右端项采用左矩形公式近似,精度不高,现采用 梯形公式近似,得 y h y ( xi ?1 ) ? y ( xi ) ? [ f ( xi , yi ) ? f ( xi ?1 , yi ?1 )] 2 O xi xi+1 x 于是得改进的Euler法(梯形法) h ? yi ?1 ? yi ? [ f ( xi , yi ) ? f ( xi ?1 , yi ?1 )] ? 2 ? ? y0 ? y( x0 ), i ? 0,1,2, L, n ? 1 ? (3) 西安理工大学应用数学系 该方法比Euler法精度高,但当f(x, y)结构复杂时, 是关于 yi + 1 的非线性方程,不易求解。 (3)预估-校正法:当f(x, y)结构复杂时,改进的 Euler法是关于 yi + 1 的非线性方程,不易求解。 此 处改用以下方法 ? yi ?1 ? yi ? hf ( xi , yi ) ? ? h ? yi ?1 ? yi ? 2 [ f ( xi , yi ) ? f ( xi ?1 , yi ?1 )] ? (4) 这是两种方法的结合使用。(4)式还可以改写 成如下形式 西安理工大学应用数学系 ì yi+ 1 = yi + hf ( xi , yi ) ? ? ? ? ? y = y + h [ f (x , y ) í i+ 1 i i i ? 2 ? ? ? + f ( xi+ 1 , yi+ 1 )] ? ? (4) ?k1 ? f ( xi , yi ) ?k ? f ( x ? h, y ? hk ) i i 1 ? 2 ? ? h ? yi ?1 ? yi ? 2 (k1 ? k2 ) ? ?i ? 0,1, L, N ? 1 ? (5) 这种表示方法有利于编制计算机程序。 (4)Runge-kutta法(R-K法):R-K法是一类高精 度的方法,这里仅给出一种四级四阶经典R-K法 西安理工大学应用数学系 ì ? ? yi + 1 = yi + h (k1 + 2k2 + 2k3 + k4 ) ? ? 6 ? ? ? k1 = f ( xi , yi ) ? ? ? h h ? k2 = f ( xi + , yi + k1 ) í ? 2 2 ? ? ? ? k = f (x + h , y + h k ) ? 3 i i 2 ? 2 2 ? ? ? k = f ( x + h, y + hk ? 4 i i 3 ? ? (6) 2.常微分方程组及高阶常微分方程初值问题的 数值解法 (1)常微分方程组初值问题: 西安理工大学应用数学系 ? ? y1 ? f1 ( x, y1 , y2 ,? , yn ) ? ? ? y2 ? f 2 ( x, y1 , y2 ,? , yn ) ? ??? ? y ? ? f ( x, y , y , ? , y ) n 1 2 n ? n ? yi ( x0 ) ? yi 0 i ? 1, 2,? , n ? x0 ? x ? X (7) 写成矩阵形式为 ?Y ? ? F ( x, Y ) ? ?Y ( x0 ) ? Y0 x0 ? x ? X (8) 西安理工大学应用数学系 其中 Y ? ( y1 ( x), y2 ( x),?, yn ( x))T ? ? Y ? ? ( y1 ( x), y2 ( x),? , yn? ( x))T F ? ( f1 ( x, Y ), f 2 ( x, Y ),?, f n ( x, Y ))T Y0 ? ( y10 , y20 ,?, yn0 )T (2)高阶常微分方程初值问题: ? y ( n ) ? f ( x, y, y??, y ( n?1) ) x0 ? x ? X ? ? ( ( y( x0 ) ? y0 , y?( x0 ) ? y0? ,?, yx0n?1) ? y0n?1) ? ? 西安理工大学应用数学系 可以化成形如(7)或(8)的形式: y1 ? y, y2 ? y?, y3 ? y??,?, yn ? y(n?1) , 则有 令 ? ? y1 ? y2 ? ? ? y2 ? y3 ? ?? ? y ? ? f ( x, y , y , ? , y ) 1 2 n ? n ? yi ( x0 ) ? y0(i ) i ? 1, 2,? n ? x0 ? x ? X 或 ?Y ? ? F ( x, Y ) ? ?Y ( x0 ) ? Y0 x0 ? x ? X 西安理工大学应用数学系 (3)常微分方程组初值问题(8)的数值解法: 我们可以看到,高阶方程(组)的矩阵形式与(1-1) 形式一样,只不过此处是向量,前边的是数量。构 造算法时,完全将前边所建立的适合(1)的算法搬到 (8)中即可,只是注意将相应的数量换成向量即可。 下边我们构造两种算法。 ① Euler法 ?Y j ?1 ? Y j ? hF ( x j , Y j ) ? ? j ? 0,1, 2,? , N ? 1 ?Y0 ? Y ( x0 ), ? 或写成数量形式 西安理工大学应用数学系 ? y1, j ?1 ? y1, j ? hf1 ( x j , y1, j , y2, j ,? , yn, j ) ?y 2, j ?1 ? y2, j ? hf 2 ( x j , y1, j , y2, j , ? , yn , j ) ? ??? ? ? yn , j ?1 ? yn , j ? hf n ( x j , y1, j , y2, j ,? , yn , j ) ? y1,0 ? y1 ( x0 ), y2,0 ? y2 ( x0 ),?, yn,0 ? yn ( x0 ) ? ? j ? 0,1, 2,? N ? 1 ② 四阶经典R-K法 西安理工大学应用数学系 h ? ?Y j ?1 ? Y j ? 6 ( K1 ? 2 K 2 ? 2 K 3 ? K 4 ) ? ? K1 ? F ( x j , Y j ) ? h 1 ? K 2 ? F ( x j ? , Y j ? hK1 ) ? 2 2 ? ? K ? F ( x ? h , Y ? 1 hK ) j j 2 ? 3 2 2 ? h ? K 4 ? F ( x j ? , Y j ? hK 3 ) 2 ? ?Y0 ? Y ( x0 ) ? 或写成向量形式 西安理工大学应用数学系 h ? ? yi , j ?1 ? yi , j ? 6 ( K1i ? 2 K 2 i ? 2 K3i ? K 4 i ) ? ? K1i ? fi ( x j , y1, j , y2, j ,? , yn, j ) ? h h h ? K 2i ? fi ( x j ? , y1, j ? K12 ,? , yn, j ? K1n ) ? 2 2 2 ? ? K ? f ( x ? h , y ? h K , y ? h K ?, y ? h K ) i j 1, j 21 2, j 22 n, j 2n ? 3i 2 2 2 2 ? h h h h ? K 4i ? fi ( x j ? , y1, j ? K31 , y2, j ? K32 ? , yn, j ? K3 n ) 2 2 2 2 ? ? yi ,0 ? yi ( x0 ) ? 西安理工大学应用数学系 3.常微分方程(组)求解的Matlab命令 (1) 符号解析解命令dsolve: S=dsolve(‘方程1’, ‘方程2’,…’初始条件1’, ‘初始条件2’ ,…‘自变量’)。用字符串表示方 程,自变量缺省时为t. 导数用D表示,2阶导数 用D2表示,以此类推。S返回解析解。在方程组 情形,S为一个符号结构。 (2) 数值解命令ode45: 西安理工大学应用数学系 [XOUT,YOUT] = ode45(odefun,xspan,y0) ,其 中xspan= [x0, xn]为自变量取值范围,y0为初值条 件,odefun指方程中的函数f (x,y), 可以是数量函 数(求解单个方程,这时y0是数量),也可以是向 量函数(求解方程组,这时y0是向量),输出量 XOUT是节点向量,当求解单个方程时,输出量 YOUT是对应于节点的数值解向量,当求解方程组 时,输出量YOUT是矩阵,一列对应于一个函数在 节点的数值解向量。 数值解命令还有ode23, ode23s,ode15s, ode113等,同学们同help命令查阅详细信息。 西安理工大学应用数学系 【基础实验】 实验1 求下列微分方程的解析解 (1) y ' ? ay ? b (2) y '' ? sin(2x) ? y, y (0) ? 0, y '(0) ? 1 (3) f ' ? f ? g , g ' ? g ? f , f '(0) ? 1, g '(0) ? 1 解: (1)是一阶方程求通解,相应的Matlab代码为 clear; s=dsolve('Dy=a*y+b') 运行结果为s =(-b+exp(a*t)*C1*a)/a。 西安理工大学应用数学系 (2)是二阶方程的初值问题,求特解,相应的 Matlab代码为 clear; s=dsolve('D2y=sin(2*x)-y','y(0)=0','Dy(0)=1','x') simplify(s) %以最简形式显示s 运行结果为s =5/3*sin(x)-1/3*sin(2*x),ans =1/3*(-5+2*cos(x))*sin(x) (3)是一阶方程组的初值问题,求特解,相应的 Matlab代码为 西安理工大学应用数学系 clear; s=dsolve('Df=f+g','Dg=g-f','f(0)=1','g(0)=1'); f=simplify(s.f)%s是一个结构 g=simplify(s.g) 运行结果为f =exp(t)*(sin(t)+cos(t)), g =exp(t)*(cos(t)-sin(t)) 实验2 求解微分方程 y ' ? ? y ? t ? 1, y(0) ? 1 ,先求 解析解,再求数值解,并进行比较。 解:先求解析解,相应的Matlab代码为 西安理工大学应用数学系 clear; s=dsolve('Dy=-y+t+1','y(0)=1','t'); y=simplify(s) 得解析解为y=t+exp(-t). 用ode45求数值解,先编写M文件 %M函数fun8.m function f=fun8(t,y) y=-y+t+1; 再运行相应的MATLAB代码 [t,y]=ode45('fun8',[0,1],1) 运行结果为 西安理工大学应用数学系 t = 0,0.0250, 0.0500,0.0750,0.1000, 0.1250, 0.1500, 0.1750,0.2000,0.2250,0.2500,0.2750,0.3000,0.3250, 0.3500,0.3750,0.4000,0.4250,0.4500,0.4750,0.5000, 0.5250,0.5500,0.5750,0.6000,0.6250,0.6500,0.6750, 0.7000,0.7250,0.7500,0.7750,0.8000,0.8250,0.8500, 0.8750,0.9000,0.9250,0.9500,0.9750,1.0000 y =1.0000,1.0003,1.0012,1.0027,1.0048,1.0075,1.0107, 1.0145,1.0187,1.0235,1.0288, 1.0346,1.0408,1.0475, 1.0547,1.0623,1.0703,1.0788,1.0876,1.0969,1.1065, 1.1166,1.1269,1.1377,1.1488,1.1603,1.1720,1.1842, 1.1966,1.2093, 1.2224,1.2357,1.2493,1.2632,1.2774, 1.2919,1.3066,1.3215,1.3367,1.3522,1.3679 西安理工大学应用数学系 在同一图形中画出解析解与数值解的图形,观察 其结果,相应的Matlab代码为 clear; close; t=0:0.1:1; y=t+exp(-t); plot(t,y);%画解析解的图形 hold on %保留已经画好的图形,如果下面要再 画图,两个图形和并在一起 [t,y]=ode45('fun8',[0,1],1); plot(t,y,'ro');%画数值解图形,用红色小圈画 xlabel('t'),ylabel('y') 西安理工大学应用数学系 运行结果见下图,可见,解析解和数值解吻合的很 好。 1.4 1.35 1.3 1.25 1.2 1.15 1.1 1.05 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 实验3:用Euler法、预估-校正法、经典四级四 阶R-K法求解下列问题,并作图比较。 西安理工大学应用数学系 ? y x2 ? 1? x ? 2 ? y? ? 2x 2 y ? ? y (1) ? 0 ? 解:编制M文件 function y=func(x,y) y=y/(2*x)+x^2/(2*y); Euler法、预估-校正法、经典四级四阶R-K法相 应的Matlab代码为(在一个程序里) 西安理工大学应用数学系 function main clc h=0.05; x=1:h:2; %%%%%%%%%%% Euler法 y1(1)=1; for i=1:length(x)-1 y1(i+1)=y1(i)+h*func(x(i),y1(i)); end %%%%%%%%%% 预估-校正法 y2(1)=1; for i=1:length(x)-1 y=y2(i)+h*func(x(i),y2(i)); y2(i+1)=y2(i)+h/2*(func(x(i),y2(i))+func(x(i+1),y)); end 西安理工大学应用数学系 %%%%%%%%%% R-K法 y3(1)=1; for i=1:length(x)-1 k1=func(x(i),y3(i)); k2=func(x(i)+h/2,y3(i)+h*k1/2); k3=func(x(i)+h/2,y3(i)+h*k2/2); k4=func(x(i)+h,y3(i)+h*k3); y3(i+1)=y3(i)+h/6*(k1+2*k2+2*k3+k4); end a=[x',y1',y2',y3'] plot(x,y1,’+’,x,y2,’r*’,x,y3,’o’) %%%%%%%%%% M文件 function y=func(x,y) y=y/(2*x)+x^2/(2*y); 西安理工大学应用数学系 节点 1.00000000000000 1.10000000000000 1.20000000000000 1.30000000000000 1.40000000000000 1.50000000000000 1.60000000000000 1.70000000000000 欧拉法解 1.00000000000000 1.10000000000000 1.20500000000000 1.31495937067773 1.42979527166804 1.54940066987151 1.67365607925027 1.80243710461147 预报-校正格式解 1.00000000000000 1.10250000000000 1.20996441724105 1.32231771629235 1.43945744430103 1.56126713715154 1.68762447335287 1.81840635431437 经典四级四阶R-K法解 1.000000000000000 1.10249718809924 1.20995871677211 1.32230864038005 1.43944440067140 1.56124957107922 1.68760192650988 1.81837848103759 1.80000000000000 1.90000000000000 2.00000000000000 1.93561919351437 2.07308054171981 2.21470378647606 1.95349199470111 2.09276472676597 2.23611297748311 1.95345855783315 2.09272558475929 2.23606806878053 西安理工大学应用数学系 2.5 2 1.5 1 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 西安理工大学应用数学系 【探索实验】 实验1:一根长为 l 的无弹性细线,一端固定,另 一端悬挂质量为 m 的小球。在重力的作用下小球 处于平衡位置。若使小球偏离平衡位置一定角度 θ ,放开它,它就会沿圆弧摆动。在不考虑空气 阻力的情况下小球会做一定周期的简谐运动。利 用牛顿第二定律得到如下的微分方程 实验1:如右图所示,一根长为 ?ml? '' ? mg sin ? , ? ?? (0) ? ?0 , ? '(0) ? 0 西安理工大学应用数学系 问该微分方程是线性的还是非线性的?是否存在 解析解?如果不存在解析解,能否求出其近似解? 解:不妨设 l = 1, g = 9.8, θ0 = 15 ,则上面 方程可化为 ?? '' ? 9.8sin ? , ? ?? (0) ? 15, ? '(0) ? 0 这个非线性方程初值问题的解析解我们没有办法求 解,在此求数值解。令 y1 ? ? , y2 ? ? ' 可将原方程化为如下方程 组 西安理工大学应用数学系 ? y1 ' ? y2 ? ? y2 ' ? 9.8sin( y1 ) ? y (0) ? 15, y (0) ? 0 2 ? 1 建立M文件如下: %M文件fun9.m function f=fun9(t,y) f=[y(2),9.8*sin(y(1))]’ ;%f向量必须为一列向量 运行MATLAB代码 西安理工大学应用数学系 clear; close; [t,y]=ode45('fun9',[0,10],[15,0]); plot(t,y(:,1));%画 θ 随时间变化图, y(:,2)则表 示 θ ? 的值 xlabel('t'),ylabel('y1') 运行结果见下图 西安理工大学应用数学系 16.5 16 y1 15.5 15 0 1 2 3 4 5 t 6 7 8 9 10 西安理工大学应用数学系 实验2:根据如下假设建立传染病模型,分析受感 染人数的变化规律,预报传染病的高潮的到来等: (1) 人群分为易感染者(Susceptible)和已感染者 (Infictive)两类,时刻t这两类人在总人数中所占的 比例分别为s(t)和y(t); (2) 每个病人每天有效接触的平均人数是常数 λ , λ 称为日接触率。当病人与健康者有效接触,使 健康者受感染变为病人; (3) 病人每天被治愈的占病人总人数的比例为μ, 1 称为日治愈率,显然 是这种传染病的平均 传染期。 μ 西安理工大学应用数学系 解:根据假设,每个患者每天可使 λs (t ) 个健康者 变为病人,因为患者人数为 Ny(t ) ,所以每天共有 λNs(t ) y(t ) - μNy 个健康者变为病人,即有 dy N = λNsy - μNy dt 又因为 s(t ) + y (t ) = 1 ,初始时刻(t=0)病人比例为 b(常数),则有 ì dy ? ? ? dt = λy (1- y ) - μy í ? ? y (0) = b ? ? 西安理工大学应用数学系 解该方程,Matlab命令为 syms a b c f=dsolve('Dy=a*y*(1-y)-c*y','y(0)=b','t') % a表示 λ ,c表示 μ 运行结果为 f =-b*(a-c)/(-a*b-exp(-(a-c)*t)*a+exp(-(ac)*t)*c+exp(-(a-c)*t)*a*b), 即该方程的解为 b( λ - μ ) y (t ) = (- λb - λe- ( λ- μ ) t + μe- ( λ- μ ) t + λbe- ( λ- μ ) t ) 西安理工大学应用数学系 λ 如果定义 σ = ,则 μ σ 表示在一个传染期内每个 病人有效接触的平均人数,称为接触数。 b( λ - μ ) y (t ) = (- λb - λe- ( λ- μ ) t + μe- ( λ- μ ) t + λbe- ( λ- μ ) t ) b(σ - 1) =- μ ( σ - 1) t - μ ( σ - 1) t - μ ( σ - 1) t (- σb - σe +e + σbe ) 当 t ? 时,考察y(t)的极限,即考察 病人比 例随时间的 变化情况。 西安理工大学应用数学系 ? 1 ?1 ? , (? ? 1) y?? ? ?0, (? ? 1) ? 这表明接触数 σ = 1 是一阈值。 下面作数值分析 令 λ = 0.01, μ = 0.05, b = 0.7 即取日接触率为0.3,日治愈率为0.15,初始病人 比例为0.7, ,此时 ? ? 1 画出y(t)-t曲线,Matlab命令为 a=0.01;b=0.7;c=0.05; f1=subs(f); ezplot(f1,[0,120]) grid on 西安理工大学应用数学系 图形见(a),与前面分析一致。 7/250/(-7/1000+47/1000 exp(1/25 t)) 0.6 0.5 0.4 0.3 0.2 0.1 0 0 20 40 60 t 80 100 120 (a) 西安理工大学应用数学系 令 λ = 0.3, μ = 0.15, b = 0.7 ,此时 σ > 1 , 画出y(t)-t曲线,Matlab命令为 -21/200/(-21/100+3/50 exp(-3/20 t)) a=0.3;b=0.7;c=0.15; f1=subs(f); ezplot(f1,[0,25]) grid on 图形见(b) 0.7 0.68 0.66 0.64 0.62 0.6 0.58 0.56 0.54 0.52 0.5 0 5 10 t 15 20 25 (b) 西安理工大学应用数学系 令 λ = 0.3, μ = 0.15, b = 0.3 , 此时 σ > 1 ,画出 y(t)-t曲线,Matlab命令为 a=0.3;b=0.3;c=0.15; f1=subs(f); ezplot(f1,[0,25]) grid on 图形见(c) 可见当 σ > 1 y(t ) 的增减性取决于b的大小。 西安理工大学应用数学系 -9/200/(-9/100-3/50 exp(-3/20 t)) 0.5 0.48 0.46 0.44 0.42 0.4 0.38 0.36 0.34 0.32 0.3 0 5 10 t 15 20 25 (c) 西安理工大学应用数学系 实验3:图5.20所示的电路中两个电容器 1 2 C1 和C 的 2 电压 y (t ) 和 y (t ) 满足下列微分方程组: 1 1 ? ( ? ) ? dy R1 R2 1 1 ? ?? y1 ? y2 ? C1 R2C1 ? dt ? dy 1 1 2 ? ? y1 ? y2 R2C2 R2C2 ? dt ? 设电容器 和 R2 C1 和 C2 分别为1法拉和0.5法拉,电阻 R 1 2 1 分别为1欧姆和2欧姆,初始电压 y (0) ? 5, y (0) ? 4 求电压 y (t ) 和 y (t ) 。 1 2 西安理工大学应用数学系 解 由题意,有如下形式的常微分方程组的初值问题 ? ? y1 ? ?1.5 y1 ? 0.5 y2 ? ? ? y2 ? y1 ? y2 ? y (0) ? 5, y (0) ? 4 2 ? 1 用Matlab命令求其特解,相应的命令为 clear; s=dsolve(‘Dy1=-1.5*y1+0.5*y2’,’Dy2=y1y2’,’y1(0)=5’,’y2(0)=4’); y1=simplify(s.y1) y2=simplify(s.y2) 西安理工大学应用数学系 运行结果为 y1 =2/exp(2*t) + 3/exp(t/2), y2 =6/exp(t/2) - 2/exp(2*t), 即该问题的解为 y1 (t ) ? ? 3e?0.5t ? 2e?2t ? ? ? ? ? ? ?0.5t ?2t ? ? 2e ? ? y2 (t ) ? ? 6e 解的进一步分析:当 和 均趋向 于零,即两个电容器的电压均随着时间的增长而衰 y (t ) 减为零,且 衰减的更快一些,如图5.21所示。 2 t ?? 时, y1 (t ) y2 (t ) 西安理工大学应用数学系 4.5 4 t=0 3.5 3 2.5 2 1.5 1 0.5 0 y2( t ) 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 y (t) 1 西安理工大学应用数学系 【思考与练习】 1 1求下列微分方程的解析解 y '? x3 y ? 2 (1) 2 (2) y '''? y ''? 3 y '? 2 y ? 0 2 求 (1 ? x ) y '' ? 2xy ', y(0) ? 1, y '(0) ? 3 的解 析解和数值解,并进行比较。 3 分别用ode45和ode15s求解Van-del-Pol方程并 ?d 2x 2 dx 作图 ? 2 ? 1000(1 ? x ) ? x ? 0 dt ? dt ? x(0) ? 0, x '(0) ? 1 ? 西安理工大学应用数学系 4 假定某公司的净资产因资产本身产生了利息而 以4%的年利率增长,同时,该公司以每年100万的 数额支付职工工资。净资产的微分方程为 dw = 0.04 w - 100 (t以年为单位) dt 分别以初始值 w(0) = 1500 万元,2500万元,3500 万元,用Euler法公式预测公司24年后的净资产趋势 (取h=1),并画出三条净资产趋势曲线。 西安理工大学应用数学系