數值計算方法實驗報告jrh

2022-03-26 15:14:21 字數 5570 閱讀 6927

一、實驗的性質、目的和任務

本實驗是與本專業基礎課《數值計算方法》相配套的,旨在鞏固專業課內容和學生程式設計的能力。

通過實驗加強對數值方法的理解和掌握,編制出適用的程式。同時,在理論教學的基礎上,注意方法處理的技巧及其與計算機的結合,;其次要通過例子,學習使用各種數值方法解決實際計算問題。

要求學生應用高階計算機語言matlab程式設計完成實驗。

二、實驗基本要求

要求熟悉高階計算機語言matlab,以及相關上機操作說明;上機時要遵守實驗室的規章制度,愛護實驗裝置;記錄除錯過程及結果。

三、實驗原理

應用高階計算機語言實現數值計算方法課程中的各種演算法。

四、裝置及器材配置

主機:微機

作業系統:windows 98以上

軟體:高階計算機語言matlab

五、考核與報告

每個實驗完成後交乙份實驗報告。本實驗作為平時成績的一部分佔學期期末總成績的20%。

六、適用物件

自動化專業

七、主要參考書

1. 王能超編,《數值分析簡明教程》,高等教育出版社,2023年,第2版

2. 封建湖編,《數值分析原理》,科學出版社,2023年,第1版

3. 馮有前編,《數值分析》,清華大學出版社,2023年,第1版

4. 周璐等譯, john h. mathews等編,《數值方法(matlab版)》,電子工業出版社,2023年,第二版

實驗一採用拉格朗日方法計算插值

一、 實驗目的:

1. 掌握多項式插值的概念、存在唯一性;

2. 能夠熟練地應用拉格朗日方法計算插值,並完成插值程式的設計和除錯。

二、 實驗內容:

構造拉格朗日插值多項式逼近,要求:

(1) 取節點,求線性插值多項式;

(2) 取節點,,求拋物插值多項式;

(3) 取節點,,,求三次插值多項式;

(4) 分別求、、的值,並與精確值相比較。

三、 實驗程式及結果:

實驗程式如下:

ex1_

l0=xianxing(1.3,-1,1);

l1=xianxing(1.3,1,-1);

y0=hanshu(-1);

y1=hanshu(1);

y=l0*y0+l1*y1

det1=abs(y-hanshu(1.3))

ex1_

l0=paowu(1.3,-1,0,1);

l1=paowu(1.3,0,-1,1);

l2=paowu(1.3,1,-1,0);

y0=hanshu(-1);

y1=hanshu(0);

y2=hanshu(1);

y=l0*y0+l1*y1+l2*y2

det2=abs(y-hanshu(1.3))

ex1_

l0=sanci(1.3,-1,0,1,2);

l1=sanci(1.3,0,-1,1,2);

l2=sanci(1.3,1,0,-1,2);

l3=sanci(1.3,2,-1,0,1);

y0=hanshu(-1);

y1=hanshu(0);

y2=hanshu(1);

y3=hanshu(2);

y=l0*y0+l1*y1+l2*y2+l3*y3

det3=abs(y-hanshu(1.3))

function f=xianxing(x,y,z)

f=(x-z)/(y-z);

function f=paowu(x,y,z,w)

f=((x-z)*(x-w))/((y-z)*(y-w));

function f=sanci(x,y,z,w,s)

f=((x-z)*(x-w)*(x-s))/((y-z)*(y-w)*(y-s));

function f=hanshu(x)

f=x^3;

實驗結果分析:

y =1.3000

det1 =0.8970

y =1.3000

det2 =0.8970

y =2.1970

det3 =4.4409e-016

結果說明三次插值方法得到的結果最接近真實值。

實驗二採用埃特金方法計算插值

一、 實驗目的:

1. 進一步掌握多項式插值的概念;

2. 能夠熟練地應用埃特金方法計算插值,並完成插值程式的設計和除錯。

二、 實驗內容:

設取節點為,,,,,,,,,用埃特金方法求的近似值,並與真實結果相比較。

三、 實驗程式及結果:

實驗程式如下:

x=[-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1];

for i=2:9

for j=i:9

y(j-1,i-1)=atj(0.793,x(i-1),x(j));

endendy(8,8)

det=abs(y(8,8)-hs(0.793))

function f=hs(x)

f=2+sin(pi*x/6);

function f=atj(x,y,z)

f=((x-z)/(y-z))*hs(y)+((x-y)/(z-y))*hs(z);

實驗結果分析:

ans =

2.4029

det =

5.2372e-004

實驗結果說明利用埃特金演算法得到的結果與真實值很接近,而且利用此迭代演算法可以避免拉格朗日插值公式中的重新計算。

實驗三採用復化柯特斯公式計算數值積分

一、 實驗目的:

1.掌握牛頓-柯特斯公式的基本原理及推導,了解復化求積法的計算步驟;

2.能夠熟練地應用復化梯形公式、復化新甫生求積公式和復化柯特斯求積公式計算數值積分,並完成積分程式的設計和除錯。

二、 實驗內容:

設取節點為,,,,,,,,,分別用復化梯形公式、復化新甫生法和復化柯特斯方法求積分的近似值。

三、 實驗程式及結果:

實驗程式如下:

tnf=tx(0,1,8)

snf=xps(0,1,8)

cnf=kts(0,1,8)

function f=hs3(x)

f=2+sin(2*pi*sqrt(x)/8);

function f=tx(x,y,n)

h=(y-x)/n;

sum=0;

for i=1:n-1

sum=sum+hs3(x+i*h);

endf=h/2*(hs3(x)+2*sum+hs3(y));

function f=xps(x,y,n)

h=(y-x)/n;

sum1=0;

sum2=0;

for i=0:n-1

sum1=sum1+hs3(x+(i+1/2)*h);

endfor j=1:n-1

sum2=sum2+hs3(x+j*h);

endf=h/6*(hs3(x)+4*sum1+2*sum2+hs3(y));

function f=kts(x,y,n)

h=(y-x)/n;

sum1=0;

sum2=0;

sum3=0;

sum4=0;

for i=0:n-1

sum1=sum1+hs3(x+(i+1/4)*h);

sum2=sum2+hs3(x+(i+1/2)*h);

sum3=sum3+hs3(x+(i+3/4)*h);

endfor j=1:n-1

sum4=sum4+hs3(x+i*h);

endf=h/90*(7*hs3(x)+32*sum1+12*sum2+32*sum3+14*sum4+7*hs3(y));

實驗結果分析:

tnf =

2.4852

snf =

2.4910

cnf =

2.5143

實驗四採用四階龍格-庫塔方法求解常微分方程

一、 實驗目的:

1. 掌握龍格-庫塔方法的設計思想;

2. 能夠熟練地應用龍格-庫塔方法求解常微分方程,並完成四階龍格-庫塔方法程式的設計和除錯。

二、 實驗內容:

用四階龍格-庫塔方法計算區間上初值問題的解。其中步長。

三、 實驗程式及結果:

實驗程式如下:

y0=0;

y(1)=lg_kt(y0,0.1);

for i=2:14

y(i)=lg_kt(y(i-1),0.1);

endy

lg_function f=lg_kt(y,h)

k1=hs4(y);

k2=hs4(y+h/2*k1);

k3=hs4(y+h/2*k2);

k4=hs4(y+h*k3);

f=y+h/6*(k1+2*k2+2*k3+k4);

function f=hs4(x)

f=1+x^2;

實驗結果分析:

y =columns 1 through 9

0.1003 0.2027 0.

3093 0.4228 0.5463 0.

6841 0.8423 1.0296 1.

2602

columns 10 through 14

1.5574 1.9647 2.5721 3.6016 5.7920

實驗五採用迭代法求解非線性方程

四、 實驗目的:

1. 掌握牛頓法、弦截法、快速弦截法的演算法思想;

2. 能夠熟練地應用牛頓法、弦截法、快速弦截法求解非線性方程,並完成程式的設計和除錯。

五、 實驗內容:

分別用牛頓法、弦截法、快速弦截法求方程的根,要求精度。

六、 實驗程式及結果:

實驗程式如下:

ex5_1:

x(1)=0;

x(2)=newton(x(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

x(i+1)=newton(x(i));

i=i+1;

endx

ex5_2:

x0=0;

x(1)=1;

x(2)=xjf(x0,x(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

x(i+1)=xjf(x0,x(i));

i=i+1;

endx

ex5_3:

x0=0;

x(1)=1;

x(2)=k_xjf(x0,x(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

x(i+1)=k_xjf(x(i-1),x(i));

i=i+1;

endx

function f=newton(x)

f=x-(exp(x)-4*cos(x))/(exp(x)+4*sin(x));

function f=xjf(x,y)

f=y-(hs5(y)/(hs5(y)-hs5(x)))*(y-x);

k_function f=k_xjf(x,y)

數值計算方法實驗

實驗一非線性方程的數值解法 10信計1班楊家博 201002044046 一 實驗目的 熟悉二分法和簡單跌點法的實現 二 實驗內容 教材p40 2.1.5 三 實驗要求 1.根據實驗內容編寫二分法簡單迭代的演算法程式 2.簡單比較分析兩種演算法的誤差 3.試構造不同的迭代格式,分析比較其收斂性 正文...

計算方法實驗報告

實驗報告3 解線性方程組的迭代法 姓名 杜娟學號 08012324 班級 勘查08 3班 一 上機題目 用jacobi迭代法和高斯 賽德爾迭代法解線性方程組 二 目的要求 掌握用jacobi迭代法和高斯 賽德爾迭代法設計程式,從而實現解線性方程組。三.方法原理 解線性方程組的迭代法是將線性方程組 a...

《計算方法》實驗報告

專業及班級姓名 學號日期 請務必將結果寫在答題區域 一 方程求根 15分 1.用牛頓迭代法求解下列方程的正根 2.先用 法確定初始點,然後再求方程的所有根。求得的根的結果 二 線性方程組 15分 1 計算下列矩陣的逆矩陣,並驗證之。2.用兩種方法求解下列線性方程組 1 呼叫 x a b 命令 2 利...