專業序號姓名日期
實驗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方法及其改進方法求解常微分方程初值問題...