當前位置:編程學習大全網 - 編程軟體 - MATLAB題,用到歐拉公式求微分方程的數值解

MATLAB題,用到歐拉公式求微分方程的數值解

%歐拉法解壹階常微分方程

%例子dy/h=-y+x+1

%f=inline('-y+x+1','x','y'); ? %微分方程的右邊項

f = inline('x-2*y','x','y');

y0 = 2; %初始條件

h = 0.025; ?%步長

xleft = 0; ?%區域的左邊界

xright = 1; %區域的右邊界

x = xleft:h:xright;

n = length(x);

%前向歐拉法

y = y0;

for i=2:n

y(i)=y(i-1)+h*f(x(i-1),y(i-1)); ?

end

plot(x,y,'ro');

hold on;

%改進歐拉法

y = y0;

for i=2:n

y(i)=y(i-1)+h/2*( f(x(i-1),y(i-1))+f(x(i),y(i-1))+h*(f(x(i-1),x(i-1)))); ?

end

plot(x,y,'g+');

%精確解用作圖

xx = x;

f = dsolve('Dy=x-2*y','y(0)=2','x');%求出解析解

y = subs(f,xx); %將xx代入解析解,得到解析解對應的數值

plot(xx,y);

legend('前向歐拉法','改進歐拉法','解析解');

  • 上一篇:軟件測試人員薪資
  • 下一篇:臺克加工中心和臺群加工中心對比那個好
  • copyright 2024編程學習大全網