計算方法報告

2021-10-11 01:31:31 字數 2627 閱讀 4003

#計算方法**實現

##第一章: 緒論

####上機實踐1:

#include#includeusing namespace std;

double fun1(double x)

double fun2(double x)

int main()

else

}void

print

(int n)

}int

main()

計算結果:

c:\users\86185\clionprojects\untitled2\cmake-build-debug\untitled2.exe

i0 = 0.182322

i1 = 0.0883922

i2 = 0.0580389

i3 = 0.0431387

i4 = 0.0343063

i5 = 0.0284684

i6 = 0.0243249

i7 = 0.0212326

i8 = 0.0188369

i9 = 0.0169265

i10 = 0.0153676

i11 = 0.0140713

i12 = 0.0129766

i13 = 0.0120399

i14 = 0.0112289

i15 = 0.0105219

i16 = 0.00989032

i17 = 0.00937191

i18 = 0.00869602

i19 = 0.00915147

i20 = 0.00424264

程序已結束,退出** 0

結果分析:看起來i19 和i20不大正確,其他的還行.以為-5*i18=- 0.0434801 1/19=0.05263157895,這是相近數相減的錯誤.也可能是有效數字越來越少了.

##第二章: 非線性方程求根

####p170二分法:

#include

#include

typedef

double d;

using namespace std;

d fun

(d x)

d fen2

(d a,d b,d ep )

else

else}}

return

(a+b)/2

;}intmain()

結果:

c:\users\86185\clionprojects\untitled2\cmake-build-debug\untitled2.exe

2.528918

程序已結束,退出** 0

和課本答案一致.

####迭代法

迭代法只需對牛頓法稍加更改即可得到,因為牛頓法本質上就是一種特殊的迭代法.

####牛頓法

#include

#include

typedef

double d;

using namespace std;

d fun

(d x)

d fun1

(d x)

d newton

(d x,d ep,

int n)

elseif(

fabs

(x-x0)

} cout<<

"超時";}

intmain()

運算結果:

c:\users\86185\clionprojects\untitled2\cmake-build-debug\untitled2.exe

20.000001

2001.879385

程序已結束,退出** 0

可以看到 得到了和課本一樣的結果

##第三章 矩陣數值解法

####gauss-seidel 迭代法

課本p178頁 課本例題也是用固定大小的陣列,我就沒寫數讀取函式

#include#include#define  n 100

typedef double d;

using namespace std;

d a[3][3]=,,};

d l[3][3]=;

d u[3][3]=;

d y[3]=;

d x[3]=;

d d[3]=;

d gauss(d a[3],d d[3],d x[3],int n_max,d ep)

if(fabs(x[i]-s)>e_max)

x[i]=s;

}if(e_max答案驗證:

c:\users\86185\clionprojects\untitled2\cmake-build-debug\untitled2.exe

0 0.2 0.1

0.2 0 0.1

0.2 0.4 0

0.999987 1.999994 2.999995

程序已結束,退出** 0

是和課本給出的答案一樣的

IOPS計算方法

通常當資料庫管理員提出需要更多儲存空間的時候,他們還會指定必須要達到多少iops。現在有這樣乙個需求,20tb儲存空間同時滿足4500 iops raid 5,我應該如何計算?raid 5或者raid 1 0的時候分別需要多少塊硬碟?首先需要知道i o中讀操作 read 與寫操作 write 所佔的...

RMS計算方法

先提乙個問題 使用訊號發生器輸出同乙個脈衝方波訊號,在示波器上採用直流耦合方式和交流耦合方式,在示波器上得出的rms值是不一樣的,存在很大的差異,為何?原因是直流耦合在取樣時以地作為平面採用波形,並帶有一定的直流成分,而交流則已波形的中心水平線作為平面取波形的絕對值採集計算,數值是不一樣的,兩者之間...

MTLD計算方法

計算方法 傳入乙個詞的list,其實mtld就是計算詞串的長度,有個要求,詞串的長度小於10他的數值就會失效,還有github上邊有另外一種說法就是總詞數不能小於50,我們用的後面那種。傳進來後,挨個詞進行ttr計算,就是比如說第乙個詞,詞數是1,唯一詞數也是1,那麼我們ttr就是1,然後判斷1 0...