微分方程數值解法實驗報告

2021-07-25 08:37:42 字數 1565 閱讀 1359

for k=2:n

yp=y(k-1,:)+h*feval(f,x(k-1),y(k-1,:));

yc=y(k-1,:)+h*feval(f,x(k),yp);

y(k,:)=(yp+yc)/2;

end(3) runge-kutta method:

function [tout,yout]=runge_kutta(f,ab,y0,h)

tout=(ab(1):h:ab(2))';

n=length(tout);

yout=zeros(n,length(y0));

yout(1,:)=y0';

for k=2:n

x=tout(k-1); y=yout(k-1,:)';

k1=feval(f,x,y);

k2=feval(f,x+h/2,y+k1*h/2);

k3=feval(f,x+h/2,y+k2*h/2);

k4=feval(f,x+h,y+k3*h);

yout(k,:)=(y+(k1+2*k2+2*k3+k4)*h/6)';

end四、實驗步驟

1、開啟matlab軟體,新建 *.m檔案,在m檔案的視窗中編輯euler演算法的函式程式,另建一m檔案,編輯自己改進的euler演算法的函式程式,再新建一m檔案,在視窗中編輯runge-kutta演算法的函式程式,並全部儲存在指定的資料夾下;

2、將matlab軟體的工作頁面的工具欄下的目標檔案指向指定的資料夾;

3、分別呼叫上述三種演算法的函式,實現微分方程(組)的數值求解完成給定的實驗題目;

4、輸出結果和初步分析說明(見附頁)。

五、使用說明實驗結果分析

1、在command window視窗中編輯要呼叫的函式名與指定的函式名字不同導致出現錯誤,通過改正與函式名相同即可;

2、大部分的常微分方程求不出十分精確的解,而只能得到近似解。當然,這個近似解的精確程度是比較高的。另外還應該指出,用來描述物理過程的微分方程,以及由試驗測定的初始條件也是近似的,這種近似之間的影響和變化還必須在理論上加以解決。

六、演算法的改進和實驗總結

1、euler演算法的改進:

先用尤拉法求得乙個初步的近似值,稱為預報值,然後用它替代梯形法右端的yi+1再直接計算fi+1,得到校正值yi+1,這樣建立的預報-校正系統稱為改進的尤拉格式:

預報值 y~i+1=yi+1 + h*f(xi,yi)

校正值 yi+1 =yi+(h/2)*[f(xi,yi)+f(xi+1,y~i+1)]

它有下列平均化形式:

yp=yi+h*f(xi,yi)

且 yc=yi+h*f(xi+1,yp)

且 yi+1=(xp+yc)/2

它的區域性截斷誤差為o(h^3),可見,改進尤拉格式較尤拉格式提高了精度,其截斷誤差比尤拉格式提高了一階。

2、總結:runge-kutta法求解微分方程比euler公式,改進的euler公式的求解結果有更高的精度,通過本次實驗,不僅對其三種方法有了更一步的了解,而且掌握並了解了幾種計算機輔助工具的運用,對我們以後更好的學習它們奠定了一定的實踐基礎,提高了我們一定的分析問題和解決問題的能力,也讓我們對所學知識有了更深刻的了解,同時也提高了我們的動手能力。

微分方程數值方法實驗報告

一 實驗題目 1 用ritz galerkin方法求解邊值問題 精確解 2 用有限元方法求解 二 實驗目的 運用matlab數學軟體編寫ritz galerkin方法和有限元方法程式,進一步熟悉matlab的應用及掌握偏微分方程數值方法中ritz galerkin方法和有限元方法,對各個方法求解精度...

微分方程數值解法答案

包括基本概念,差分格式的構造 截斷誤差和穩定性,這些內容是貫穿整個教材的主線。解答問題關鍵在過程,能夠顯示出你已經掌握了書上的內容,知道了解題方法。這次考試題目的型別 20分的選擇題,主要是基本概念的理解,後面有五個大題,包括差分格式的構造 截斷誤差和穩定性。習題一1 略 2 梯形公式 所以,當時,...

常微分方程數值解實驗報告

學院 數學與資訊科學 專業 資訊與計算科學 姓名 鄭思義 學號 201216524 課程 常微分方程數值解 實驗一 常微分方程的數值解法 1 分別用euler法 改進的euler法 預報校正格式 和s k法求解初值問題。h 0.1 並與真解作比較。1.1實驗 尤拉法 function x,y nae...