寫出初值(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 介面圖
所以本題的解如上圖所示。
#include
using namespace std;
int main()
return 0;
}double f(double tt,double xx,double yy)
double g(double tt,double xx,double yy)
首先寫出線性方程組的增廣矩陣;然後尋找最大主元,並交換主元行;接著開始消元形成三角矩陣,最後進行上三角矩陣回代求解。
圖2-1 流程圖
例2.1:解下面非線性方程組的解,
呼叫程式執行結果如下:
圖2-2 介面圖
所以方程組的解為:
#include
#include
#include
using namespace std;
int main()
for(h=0;h
t=a[i+1][h]/a[h][h];
for(j=0;j a[i+1][j]=-t*a[h][j]+a[i+1][j];//消元
}cout<<"消元後的增廣矩陣" for(j=0;jcout if(a[h][h]==0) cout<<"!!此方程組的係數矩陣是奇異的,解不唯一,不適用於高斯回代列主消元法求解。" else x[j]=a[j][j+1]/a[j][j];} cout<<"方程組的解分別如下:"< for(k=0;k cout<<"x" 第一步:寫出函式向量和雅可比行列式矩陣及初始值。第二步: 求出函式向量=和雅可比行列式矩陣=。第三步:建立線性方程組解出。 第四步:比較是否滿足所要求的誤差限,若滿足就輸出,否則重複第一步至第三步。 圖3-1 流程圖 例3.1:用牛頓迭代法求解非線性方程組,設有非線性方程組初始值誤差小於0.0001; 呼叫程式執行結果如下: 圖3-2 介面圖 經過三次迭代後的x=1.90068和y=0.311219為滿足題意的方程組的解。 #include <> #include using namespace std; #define n 2 void juzhen(float (*a)[n]) if(fabs(q)>=0.001) else a+k)+j)=0; a+j)+k)=0; }for(i=0;i for(j=0;ja+i)+j)=*(*(a+i)+j)+c[i]*b[j];} }for(k=n-1;k>=0;k--) {if(k1[k]!=k) for(i=0;i z=*(*(a+i)+k1[k]); 1 方法一 2 方法二 3.程式設計 1 演算法設計一 含流程圖 2 程式設計一 3 演算法設計二 含流程圖 4 程式設計二 4.程式實現 1 程式實現一 2 程式實現二 二 執行環境 1 c語言 或c 執行環境 2 matlab執行環境 三 執行結果分析及應用 四 實驗心得 五 參考文獻 六 附錄... 第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... 課程設計報告 課程設計題目 牛頓迭代法求解非線性方程組 學生姓名 專業 班級 指導教師 題目 在化學工程中常常研究在乙個封閉系統中同時進行的兩種可逆反應 其中a,b,c和d代表不同的物質。反應達到平衡是有如下的平衡關係 其中稱為平衡常數,代表平衡狀態時該物質的濃度。假定反應開始時各種物質的濃度為 而...數值計算方法課程設計
數值方法課程設計
《數值分析》課程設計報告