數值方法課程設計

2021-03-04 09:56:12 字數 2661 閱讀 6799

第1節經典四階龍格庫塔法解一階微分方程組3

1.1 演算法概要3

1.2 演算法流程圖3

1.3 程式除錯4

1.4 程式**4

第2節高斯列主元法解線性方程組6

2.1 演算法概要6

2.2 演算法流程圖6

2.3 程式除錯7

2.4 程式**8

第3節牛頓法解非線性方程組11

3.1 演算法概要11

3.2 演算法流程圖11

3.3 程式除錯12

3.4 程式**12

第4節龍貝格求積分演算法15

4.1 演算法概要15

4.2 演算法流程圖15

4.3 程式除錯16

4.4 程式**17

第5節三次樣條插值演算法(壓緊樣條)及其圖形繪製……………………18

5.1 演算法概要18

5.2 程式除錯19

5.3 程式**20

第6節 m次多項式曲線擬合22

6.1 演算法概要22

6.2 演算法流程圖22

6.3 程式除錯23

6.4 程式**24

第7節霍納法多項式求值26

7.1 演算法概要26

7.2 演算法流程圖26

7.3 程式除錯27

7.4 程式**27

第8節二分法解非線性方程28

8.1 演算法概要28

8.2 演算法流程圖29

8.3 程式除錯29

8.4 程式**29

第9節牛頓-拉弗森迭代解非線性方程31

9.1 演算法概要31

9.2 程式除錯31

9.3 程式**31

第10節不動點法解非線性方程32

10.1 演算法概要32

10.2 程式除錯32

10.3 程式**33

第11節設計體會及今後的改進意見34

11.1 設計體會34

11.2 改進意見34

參考文獻35

第1節經典四階龍格庫塔法解一階微分方程組

1.1經典四階龍格庫塔法解一階微分方程組演算法概述

4階龍格-庫塔方法(rk4)可模擬n=4的泰勒方法的精度。這種演算法可以描述為,自初始點開始,利用

生成的近似序列,其中

1.2 經典四階龍格庫塔法解一階微分方程組演算法流程圖

1.3經典四階龍格庫塔法解一階微分方程組程式除錯

將編寫好的**放在vc6.0環境中編譯,直接執行程式便可以得到求解微分方程,並且的結果。如圖:

將這些點進行插值或者擬合後就可以得到微分方程的解。

1.4 經典四階龍格庫塔法解一階微分方程組**

#include

#include

#define n 24

//4階龍格-庫塔方法

void rk4(double (*p)(double t,double y),double a,double b,double ya,int m)

; y=(double*)malloc((m+1)*sizeof(double));

//t=;

t[0]=a;

for(i=1;i

y[0]=ya;

for(i=0;i

r[0]=t;

r[1]=y;

printf("tk=\ty(tk)=\n");

for(i=0;i

//return r;

}//微分方程的函式檔案

double f(double t,double y)

main()

第2節高斯列主元法解線性方程組

2.1 高斯列主元演算法概要

首先將線性方程組做成增光矩陣,對增廣矩陣進行行變換。

對第元素,在第i列中,第i行及以下的元素選取絕對值最大的元素,將該元素最大的行與第i行交換,然後採用高斯消元法將新得到的消去第i行以下的元素。一次進行直到。從而得到上三角矩陣。

再對得到的上三角矩陣進行回代操作,即可以得到方程組的解。

2.2高斯列主元演算法流程圖

2.3高斯列主元程式除錯

編寫好程式,然後編譯鏈結,顯示視窗如下,提示輸入待求解的非線性方程組的增廣矩陣的行數,這裡,我們輸入3。

回車後,程式提示輸入三行四列的增廣矩陣,我們這裡不妨輸入如下矩陣

然後,回車開始求解,結果如下

2.4 高斯列主元演算法**

#include

#include

#include

//在列向量中尋找絕對值最大的項,並返回該項的標號

int findmax(int p,int n,double *a)

}return j;

}//交換矩陣中的兩行

void exchangerow(int p,int j,double *a,int n)

}//上三角變換,a為增廣矩陣的指標,n為矩陣的行數。

void uptrbk(double *a,int n)

消去p元素一下的p列內容。

for(k=p+1;k

}printf("\n增廣矩陣高斯列主元消去後的矩陣為:\n");

for(j=0;j

}//下面是回代函式

double* backsub(double *a,int n)

return x;

}main()

{ int n=0,i=0;

數值計算方法課程設計

1 方法一 2 方法二 3.程式設計 1 演算法設計一 含流程圖 2 程式設計一 3 演算法設計二 含流程圖 4 程式設計二 4.程式實現 1 程式實現一 2 程式實現二 二 執行環境 1 c語言 或c 執行環境 2 matlab執行環境 三 執行結果分析及應用 四 實驗心得 五 參考文獻 六 附錄...

《數值分析》課程設計報告

課程設計報告 課程設計題目 牛頓迭代法求解非線性方程組 學生姓名 專業 班級 指導教師 題目 在化學工程中常常研究在乙個封閉系統中同時進行的兩種可逆反應 其中a,b,c和d代表不同的物質。反應達到平衡是有如下的平衡關係 其中稱為平衡常數,代表平衡狀態時該物質的濃度。假定反應開始時各種物質的濃度為 而...

正文數值計算課程設計正

寫出初值 t0,x0,y0 微分區間 a b 和微分方程f t,x,y 和g t,x,y 步長h 利用和生成近似值序列 圖1 1 流程圖 例1 1 用rk4方法求解區間 0 0.2 上一階微分方程組 且步長h 0.02時的龍格庫塔解。呼叫程式執行結果如下 圖1 2 介面圖 所以本題的解如上圖所示。i...