數學實驗知識點整理(數值積分,常微分方程求解)

《數學實驗》知識點整理

1、須要掌握的內容

Matlab 語言編程基礎(矩陣的建立及使用方法、矩陣運算基礎、線性方程求解、選擇、循環{求和、迭代}、函數的定義及使用方法) (40分)編程

曲線的繪製(掌握一元函數圖形的繪製方法,以及參數曲線的繪製方法;  掌握plot, ezplot,plot3,ezplot3等函數的用法;掌握基本的圖形標註命令)  (15分左右)函數

曲面的繪製(掌握二元函數圖形的繪製方法,以及參數曲面的繪製方法;掌握 mesh,ezmesh等函數的用法)(15分左右)spa

非線性方程(組)求解 (掌握用fzero求非線性方程的根,以及用 fsolve求解非線性方程組的方法)(10分)ip

數值積分和符號積分(掌握trapz,quadl,dblquad, integral2, integral3等函數的用法) (10分左右)數學

常微分方程(組)求解  (掌握利用ode45求解常微分方程和常微分方程組的方法)  (10分)域名

2、知識整理

  1. 數值積分數值微分

1)        經常使用的數值積分方法it

  • 矩形公式
  • 梯形公式
  • Simpson公式
  • Newton-Cotes積分法
  • 高斯求積公式
  • 龍貝格(Romberg)積分法
  • 蒙特卡洛方法(隨機模擬的方法)

2)       Matlab中數值微分和積分的函數:diff基礎

3)       數值導數變量

方向導數gradient循環

» clear;x=[1 1.1 1.2 1.3];y=x.^3;

» dy=diff(y)./diff(x)

» dy=gradient(y,x)

» 3*x.^2

利用梯形法求積分

  • z=trapz(x,y)  其中x 表示積分區間的離散化向量; y   x同維數的向量,表示被積函數;該函數返回積分的近似值
  • 求積分
  • » clear; x=-1:0.1:1; y=exp(-x.^2);
  • » trapz(x,y)

 

  1. 2.        數值積分和符號積分
  • z=trapz(x,y)  其中x 表示積分區間的離散化向量; y是與x同維數的向量,表示被積函數;該函數返回積分的近似值 。
  • 例: 求積分
  • 解 » clear; x=-1:0.1:1; y=exp(-x.^2);
  • » trapz(x,y)
  • >> z=quadl(@(x)exp(-x.^2),-1,1)(int函數)
  • >> z= integral (@(x)exp(-x.^2),-1,1) (能夠計算反常積分)
  • 另外一個例子:
  • >> fun = @(x) exp(-x.^2).*log(x).^2;
  • >> q = quadl(fun,0,Inf)    % quadl不能求反常積分
  • >> q = integral(fun,0,Inf) % integral能求反常積分
  1. 3.        重積分
  • z=dblquad(Fun,a,b,c,d)  求二元函數 Fun(x,y) 在矩形區域的重積分。
  • z=triplequad(Fun,a,b,c,d,e,f)  求三元函數Fun(x,y,z) 在長方體區域上的三重積分。
  • z=quad2d(Fun,a,b,cx,dx)  求二元函數Fun(x,y)在通常區域上的重積分。a, b爲變量x的下、上限;cx, dx爲變量y的下、上限函數(自變量爲x)。
  • z= integral2 (Fun,a,b,cx,dx) 相似quad2d
  • z= integral3 (Fun,a,b,cx,dx,exy,fxy) 求三元函數Fun(x,y,z)在通常區域上的三重積分 。

例題:

 

  1. 4.        微分方程

微分方程:含有未知函數及其某些階導數以及自變量自己的方程稱爲微分方程

常微分方程:未知函數是一元函數

偏微分方程:含有偏導數的微分方程,其解爲多元函數u(t,x,y,z)。

微分方程組:聯繫一些未知函數x(t), y(t), z(t),  … 的一組微分方程。

微分方程的階:微分方程中出現的未知函數的導數的最高階數

n  (2)常係數線性微分方程的特徵根法

n  線性方程:  y(n)  + a1 (t) y(n-1)  + …

n      + an-1 (t) y’ + an (t) y = b(t)

n  常係數方程: 若ai (t) (i =1, …,n) 與t無關。

n  齊次方程: 若b(t)=0。

n        y(n)  + a1 y(n-1)  + … + an-1 y’ + an y = 0

n  線性常係數齊次微分方程的解可用特徵根法求得.

n         ln+a1 ln-1+ … +an-1 l+an=0

n  非齊次方程的解爲一個特解和相應的齊次方程通解的疊加。

n  變係數方程可嘗試常數變易法。

n  例6.1  求x’’+ 0.2 x’+3.92x = 0的通解

n  解  特徵方程爲l2 + 0.2l +3.92=0

n    » roots([1 0.2 3.92]

n   求得共軛復根 a ±bi=-0.1±1.9774i,

ode45函數

 

 

例6.2  解微分方程                                                     y’ -y+2t/y=0, y(0)=1(初值向量1, 0<t<4 (自變量的初值04

將方程整理爲標準形式y’ = y-2t/y

 

程序:

odefun= @(t,y)y-2*t/y ;

>> [t,y]=ode45(odefun,[0,4],1); [t,y]

>> plot(t,y,'o')

>> ode45(odefun,0:1:4,1);%(輸出結點列向量)

>> [t,y]=ode45(odefun,0:1:4,1);[t,y]

例二

 

 

【0 30】自定義x的範圍,【1;0.5】初值解的值

 

 

例三(高階)

 

Y0是初值解

 

  1. 5.        邊值問題解法 

 

 

6.5求解邊值問題

首先改寫爲標準形式。

     y(1)= z, y(2)= z’, 則方程爲

y’(1)=y(2), y’(2) = -y(2)sin(y(1))

邊界條件爲

ya(1)=0, yb(1)+2=0

程序:eg6_5.m

 %根據z初始值預估:z=-1,z’=0

clear;close;

sinit=bvpinit(0:4,[-1;0])

%[-1;0]是常數猜想值z=-1, z’=0

  • odefun=@(t,y)[y(2);-y(2)*sin(y(1))];

bcfun=@(ya,yb)[ya(1);yb(1)+2];

sol=bvp5c(odefun,bcfun,sinit) %注意sol的域名

t=linspace(0,4,101);

y=deval(sol,t);

plot(t,y(1,:),sol.x,sol.y(1,:),'o',sinit.x,sinit.y(1,:),'s')

legend('解曲線','解點','粗略解')

相關文章
相關標籤/搜索