東南大學(xué)數(shù)值分析上機作業(yè)匯總-1-2023修改整理_第1頁
東南大學(xué)數(shù)值分析上機作業(yè)匯總-1-2023修改整理_第2頁
東南大學(xué)數(shù)值分析上機作業(yè)匯總-1-2023修改整理_第3頁
東南大學(xué)數(shù)值分析上機作業(yè)匯總-1-2023修改整理_第4頁
東南大學(xué)數(shù)值分析上機作業(yè)匯總-1-2023修改整理_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

千里之行,始于足下讓知識帶有溫度。第第2頁/共2頁精品文檔推薦東南大學(xué)數(shù)值分析上機作業(yè)匯總數(shù)值分析上機報告

院系:

學(xué)號:

姓名:

名目

作業(yè)1、舍入誤差與有效數(shù)(1)

1、函數(shù)文件(1)

2、函數(shù)文件(1)

3、兩種辦法有效位數(shù)對照(1)

4、心得(2)

作業(yè)2、Newton迭代法(2)

1、通用程序函數(shù)文件(2)

2、局部收斂性(3)

(1)最大δ值文件(3)

(2)驗證局部收斂性(4)

3、心得(5)

作業(yè)3、列主元素Gauss消去法(6)

1、列主元Gauss消去法的通用程序(6)

2、解題中線性方程組(7)

3、心得(8)

作業(yè)4、三次樣條插值函數(shù)(8)

1、第一型三次樣條插值函數(shù)通用程序:(8)

2、數(shù)據(jù)輸入及計算結(jié)果(10)

作業(yè)1、舍入誤差與有效數(shù)

設(shè)∑

=-=N

jNjS2

2

11

,其精確值為??

???1112321NN.(1)編制按從小到大的挨次11

131121222-?

??+-+-=NSN,計算NS的通用程序;(2)編制按從大到小的挨次()1

21

11111222-???+--+-=NNSN,計算NS的通用程序;

(3)按兩種挨次分離計算642101010,,SSS,并指出有效位數(shù);(4)通過本上機你明了了什么

程序:

1、函數(shù)文件

functionS=cxdd(N)S=0;i=;

while(i>):

S=cxdd(80)S=

2、函數(shù)文件

functionS=cddx(N)S=0;fori=N:-1:2S=S+1/(i*i-1);end

script運行結(jié)果(省略>>):S=cddx(80)S=

3、兩種辦法有效位數(shù)對照

精確值函數(shù):

functionS=jqz(N)S=*運行結(jié)果(省略>>)

4、心得

本題重點體現(xiàn)了數(shù)值計算中“大數(shù)吃小數(shù)”的問題,因為計算機計算的截斷特點,從大到小的計算會導(dǎo)致小數(shù)的有效數(shù)被忽視掉。

從題中可以看出,看出按不同的挨次計算的結(jié)果是不相同的,按從小到大的挨次計算的值與精確值吻合,而按從大到小的挨次計算的值與精確值有較大的誤差。計算機在舉行數(shù)值計算時會浮現(xiàn)“大數(shù)吃小數(shù)”的現(xiàn)象,導(dǎo)致計算結(jié)果的精度有所降低。

作業(yè)2、Newton迭代法

(1)給定初值x

及容許誤差ε,編制Newton法解方程f(x)=0根的通用程序。

(2)給定方程f(x)=x3/3-x=0,易知其有三個根x

1※=3

-,x

2

※=0,x

3

※=3。

①由Newton辦法的局部收斂性可知存在δ>0,當(dāng)x0∈(δ

-,δ),Newton迭

代序列收斂于根x

2

※,試確定盡可能大的δ;

②試取若干個初始值,觀看當(dāng)x

0∈(-∞,-1),(-1,δ

-),(δ

-,δ),(δ,

1),(1,+∞)時,Newton序列是否收斂以及收斂于哪一個根。(3)通過本上機題,你明了了什么

1、通用程序函數(shù)文件

定義f(x)函數(shù)

functionf=fun(x)

f=x^3/3-x;

end

定義f(x)導(dǎo)函數(shù)

functionf=dfun(x)

f=x*x-1;

end

定義求近似解函數(shù)

function[f,n]=newton(x0,ep)

flag=1;

n=0;

while(flag==1)

x1=x0-fun(x0)/dfun(x0);

n=n+1;

if(abs(x1-x0)100000)

flag=0;

end

x0=x1;

end

f=x1;

end

script運行結(jié)果

clear;

x0=input('請輸入初始值x0:');

ep=input('請輸入容許誤差:');

[f,n]=newton(x0,ep);

fprintf('方程的一個近似解為:%f\n',x1);

2、局部收斂性

(1)最大δ值文件

flag=1;

k=1;

x0=0;

whileflag==1

sigma=k*10^-6;

x0=sigma;

k=k+1;

m=0;

flag1=1;

whileflag1==1

ifabs(x1-x0)=10^-6)

flag=0;

end

end

fprintf('最大值為:%f\n',sigma);

運行結(jié)果為:

最大值為:

即得最大的δ為,Newton迭代序列收斂于根*

x=0的最大區(qū)間為(,)。

2

(2)驗證局部收斂性

在x0∈(-∞,-1)區(qū)間,取以下初值,分離調(diào)用函數(shù)文件,得到結(jié)果如下:

X0X1迭代次數(shù)

-10015

-2022

-58

5

結(jié)果顯示,以上初值迭代序列均收斂于,即根*

x。

1

明顯,迭代格式初值的挑選對于迭代的收斂速度是至關(guān)重要的,當(dāng)時值臨近真切值的時候,迭代次數(shù)削減。

在x0∈(-1,δ

-)區(qū)間,取以下初值,分離調(diào)用函數(shù)文件,得到結(jié)果如下:

X0X1迭代次數(shù)

9

6

10

15

計算結(jié)果顯示,迭代序列局部收斂于,即根*

x。

3

在x0∈(δ

-,δ)區(qū)間,取以下初值,分離調(diào)用函數(shù)文件,得到結(jié)果如下:

X0X1迭代次數(shù)

5

3

3

3

3

5

由的運行過程表明,在囫圇區(qū)間上均收斂于0,即根*

x。

2

在x0∈(,1)區(qū)間,取以下初值,分離調(diào)用函數(shù)文件,得到結(jié)果如下:

X0X1迭代次數(shù)

10

7

9

12

計算結(jié)果顯示,迭代序列局部收斂于,即根*

x。

1

在x0∈(1

X0X1迭代次數(shù)

5

58

2022

10015

結(jié)果顯示,以上初值迭代序列均收斂于,即根*

x。

3

綜上所述:(-∞,-1)區(qū)間收斂于,(-1,δ)區(qū)間局部收斂于,局部收斂于,(-δ,δ)區(qū)間收斂于0,(δ,1)區(qū)間類似于(-1,δ)區(qū)間,(1,∞)收斂于。3、心得

牛頓迭代法對于初值的挑選要求較高,因此,在牛頓迭代時可現(xiàn)通過容易迭代法尋覓相對精確?????一些的值來舉行牛頓迭代。

對于方程有多解的問題,Newton法求方程根時,牛頓迭代要考慮局部收斂的問題,迭代序列收斂于某一個根有一定的區(qū)間限制,在一個區(qū)間上,可能會局部收斂于不同的根。

作業(yè)3、列主元素Gauss消去法

對于某電路的分析,歸結(jié)為求解線性方程組RI=V。

32-13000-10000

-1335-90-110000

0-931-1000000

R=000-3057-70-50

0000-747-3000

00000-304100

0000-50027-2

000-9000-229

VT=[-15,27,-23,0,-20,12,-7,7,10]T

(1)編制解n階線性方程組Ax=b的列主元Gauss消去法的通用程序;

(2)用所編程序解線性方程組RI=V,并打印出解向量,保留5位有效數(shù)字;(3)在本編程之中,你提高了那些編程能力。

1、列主元Gauss消去法的通用程序

函數(shù):

找每列的主元的函數(shù)

functionB=zhuyuan(B,t,N,M)

fori=0:N-1-t

ifB(N-i,t)>B(N-i-1,t)

c=zeros(1,M);

forj=1:M

c(j)=B(N-i,j);

B(N-i,j)=B(N-i-1,j);

B(N-i-1,j)=c(j);

end

end

end

舉行列消去的函數(shù)

functionB=xiaoqu(B,t,N,M)

fori=t+1:N

l=B(i,t)/B(t,t);

forj=t:M

B(i,j)=B(i,j)-l*B(t,j);

end

end

舉行三角矩陣下的解函數(shù)

functionX=jie(X,B,N,M)

fori=1:N-1

s=B(N-i,M);

forj=N-i+1:N

s=s-B(N-i,j)*X(j);

end

X(N-i)=s/B(N-i,N-i);

end

執(zhí)行主程序:

N=input('請輸入線性方程組的階數(shù):N=');

M=input('請輸入增廣矩陣階數(shù):M=');

b=zeros(1,N);

A=zeros(N,N);

A=input('請輸入系數(shù)矩陣:');

b(1,:)=input('請輸入方程組的右端向量:');

b=b';

B=[A,b];

fort=1:N-1

B=zhuyuan(B,t,N,M);

B=xiaoqu(B,t,N,M);

end

X=zeros(N,1);

X(N)=B(N,M)/B(N,N);

X=jie(X,B,N,M);

X

2、解題中線性方程組

執(zhí)行程序,輸入矩陣A(即題中的矩陣R)和列向量b(即題中的V),如下:請輸入線性方程組的階數(shù):n=9

請輸入增廣矩陣階數(shù):m=10

請輸入系數(shù)矩陣A:

A=[31,-13,0,0,0,-10,0,0,0,-15;-13,35,-9,0,-11,0,0,0,0,27;0,-9,31,-10,0,0,0,0,0,-23;0,0,-10,79,-30,0,0,0,-9,0;0,0,0,-30,57,-7,0,-5,0,-20;0,0,0,0,-7,47,-30,0,0,12;0,0,0,0,0,-30,41,0,0,-7;0,0,0,0,-5,0,0,27,-2,7;0,0,0,-9,0,0,0,-2,29,10];

請輸入方程組的右端向量b:[-1527-230-2012-7710]

得到如下結(jié)果:

A=

31-13000-10000-15

-1335-90-11000027

0-931-1000000-23

00-1079-30000-90

000-3057-70-50-20

0000-747-300012

00000-304100-7

0000-50027-27

000-9000-22910

x=

3、心得

列主元Gauss最重要的就是如何通過找到最大主元,并交換行,如何舉行消去,這需要很精心的循環(huán),和很復(fù)雜的嵌套,通過本題的編程,感覺個人對于這種多層嵌套循環(huán)的處理能力提高了無數(shù)。

通過對軟件的編程,也越發(fā)理解了Gauss消去法的實質(zhì)。

作業(yè)4、三次樣條插值函數(shù)

(1)編制求第一型3次樣條插值函數(shù)的通用程序;

(2)已知汽車門曲線型值點的數(shù)據(jù)如下:

端點條件為

'

y=,'

10

y=,用所編程序求車門的3次樣條差值函數(shù)S(x),并

打印出S(i+),i=0,1······9。

1、第一型三次樣條插值函數(shù)通用程序:

n=input('請輸入節(jié)點數(shù)n:');

n=n+1;

xn=zeros(1,n);

yn=zeros(1,n);

xn(1,:)=input('請輸入X的值:');

yn(1,:)=input('請輸入Y的值:');

dy0=input('請輸入邊界條件y(0):');

dyn=input('請輸入邊界條件y(n):');

d=zeros(n,1);

h=zeros(1,n-1);

f2=zeros(1,n-2);

fori=1:n-1

h(i)=xn(i+1)-xn(i);%求一階差商

f1(i)=(yn(i+1)-yn(i))/h(i);

end

fori=2:n-1

f2(i)=(f1(i)-f1(i-1))/(xn(i+1)-xn(i-1));%求二階差商

d(i)=6*f2(i);

end

d(1)=6*(f1(1)-dy0)/h(1);

d(n)=6*(dyn-f1(n-1))/h(n-1);

A=zeros(n);%求M值

u=zeros(1,n-2);

r=zeros(1,n-2);

fori=1:n-2

u(i)=h(i)/(h(i)+h(i+1));

r(i)=1-u(i);

end

A(1,2)=1;

A(n,n-1)=1;

fori=1:n

A(i,i)=2;

end

fori=2:n-1

A(i,i-1)=u(i-1);

A(i,i+1)=r(i-1);

end

M=A\d;

symsx

fori=1:n-1%求節(jié)點插值

Sx(i)=collect(yn(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(x-xn(i))+M(i)/2*(x-xn(i))^2+(M(i+1)-M(i))/(6*h(i))*(x-xn(i))^3);

Sx(i)=vpa(Sx(i),4);

end

fori=1:n-1

x=xn(i)+;

S(i)=yn(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(x-xn(i))

+M(i)/2*(x-xn(i))^2+(M(i+1)-M(i))/(6*h(i))*(x-xn(i))^3;

end

disp('S(x)=');%結(jié)果輸出

fori=1:n-1

fprintf('%s(%d,%d)\n',char(Sx(i)),xn(i),xn(i+1));

disp('··············································');

end

disp('S(i+');

disp('ix(i+S(i+')

fori=1:n-1

fprintf('%d%.4f%.4f\n',i,xn(i)+,S(i))

end

2、數(shù)據(jù)輸入及計算結(jié)果

請輸入節(jié)點數(shù)n:10

請輸入X的值:[012345678910]

請輸入Y的值:[]

請輸入邊界條件y(0):

請輸入邊界條件y(n):

S(x)=

-*x^3-*x^2+*x+(0,1)

·············································

-*x^3-*x^2+*x+(1,2)

····

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論