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

2022-04-27 03:39:03 字數 1112 閱讀 2220

專業序號姓名日期

實驗3 常微分方程數值解

【實驗目的】

1.掌握用matlab求微分方程初值問題數值解的方法;

2.通過例項學習微分方程模型解決簡化的實際問題;

3.了解尤拉方法和龍格庫塔方法的基本思想。

【實驗內容】

用尤拉方法和龍格庫塔方法求下列微分方程初值問題的數值解,畫出解的圖形,對結果進行分析比較

【解】:手工分析怎樣求解

【計算機求解】:怎樣設計程式?流程圖?變數說明?能否將某演算法設計成具有形式引數的函式形式?

【程式如下】:

function f=f(x,y)

f=y+2*x;

clc;clear;

a=0;b=1; %求解區間

[x1,y_r]=ode45('f',[a b],1); %呼叫龍格庫塔求解函式求解數值解;

%% 以下利用euler方法求解

y(1)=1;n=100;h=(b-a)/n;

x=a:h:b;

for i=1:n

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

endfigure(1)

plot(x1,y_r,'r*',x,y,'b+',x,3*exp(x)-2*x-2,'k-');%數值解與真解圖

title('數值解與真解圖');

legend('rk4','euler','真解');

xlabel('x');ylabel('y');

figure(2)

plot(x1,abs(y_r-(3*exp(x1)-2*x1-2)),'k-');%龍格庫塔方法的誤差

title('龍格庫塔方法的誤差')

xlabel('x');ylabel('error');

figure(3)

plot(x,abs(y-(3*exp(x)-2*x-2)),'r-')%euler方法的誤差

title('euler方法的誤差')

xlabel('x');ylabel('error');

【執行結果如下】:

【結果分析】:龍格庫塔方法和euler方法求解常微分方程都能獲得比較好的數值解,相比較而言龍格庫塔方法的數值解的精度遠遠要比euler方法的數值解的精度高。

實驗三常微分方程求解Matlab實驗報告

北京理工大學珠海學院實驗報告 zhuhai campaus of beijing institute of technology 班級2012電氣2班學號 姓名陳冲指導教師張凱成績 實驗題目 實驗三 常微分方程求解實驗地點及時間 jb501 2013 12 31 3 4節 一 實驗目的 1.掌握用程...

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

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

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

2012年10月17日 實驗目的 1 通過用matlab程式設計運用euler方法及其改進方法求解常微分方程初值問題,更進一步掌握常微分方程及其數值解法課程的理論內容,加深對數值解法的理解。2 熟悉matlab程式設計環境。實驗內容 1.實驗題目 運用euler方法及其改進方法求解常微分方程初值問題...