复化梯形公式求椭圆周长C语言,C语言编程解线性,非线性方程,龙贝格算法.docx
C語言編程解線性,非線性方程,龍貝格算法
課程設計課程名稱:數值計算B 設計題目:數值計算B課程設計學號:姓名:完成時間: 2015年10月27日題目一:非線性方程求根一、題目假設人口隨時間和當時人口數目成比例連續增長,在此假設下人口在短期內的增長建立數學模型。(1)如果令表示在時刻的人口數目,表示固定的人口出生率,則人口數目滿足微分方程,此方程的解為;(2)如果允許移民移入且速率為恒定的,則微分方程變成,此方程的解為;假設某地區初始有1000000人,在第一年有435000人移入,又假設在第一年年底該地區人口數量1564000人,試通過下面的方程確定人口出生率,精確到;且通過這個數值來預測第二年年末的人口數,假設移民速度保持不變。二、數學原理本題考查非線性方程的解法。數值計算中常用的有二分法、不動點迭代法、牛頓法以及其變形,本文采用牛頓法進行迭代計算。牛頓法的基本思想是將非線性方程逐步轉化為某種線性方程來求解。其計算過程大致為:將非線性方程轉化為的形式;將函數在方程的近似根(假定)處泰勒展開,則原方程可近似為記上述方程的根為,得到其計算公式為(4)按照給定的精度要求判斷是否收斂,得到最終結果。本題中,將非線性方程轉化為的形式如下:即則由于牛頓法對初值的要求較高,因此先采用二分法初步給定初值。如下表所示:0.11的符號-+故取初值。三、程序設計使用C語言進行迭代程序的設計。定義數組x[1000]存放人口增長率的迭代數據;定義變量a表示迭代次數,定義變量b為迭代誤差,變量c為計算精度;輸入變量:x[0]=0.5為初值,c=0.0001為計算精度;輸出變量:x[a](即最終結果),a,迭代總次數,b迭代最終誤差。程序設計見附錄。(二分法與牛頓法混合使用,計算收斂較易,因而只給定最大迭代次數,未進行迭代是否發散的判定)四、結果分析和討論程序運行結果如下圖所示,計算精度為10-4的最終結果為。將其代入方程得到第二年人口的計算式為即人口出生率為10.10%,第二年該地區人口數量約為2187900人。討論:使用牛頓法與二分法相配合在較少的迭代次數下即取得了較為準確的結果,可見數值計算方法在計算類似問題上有著很大的優勢。圖1 題目一程序運行結果五、完成題目的體會與收獲在求解該題目的過程中,使用了非線性方程的牛頓迭代法求解,運用C語言設計了迭代計算程序,對非線性方程求解的數學思想有了深入認識和切實體會,有助于將數值計算課程中學到的理論知識運用到實際物理問題的研究中。題目二:線性方程組求解一、題目假設一個物體可以位于個等距點的任意位置,當物體在位置時,它只能等可能的移動到或者,而不能直接移動到其他任何位置,概率表示物體從位置開始在到達右端點之前到達左端點的概率,顯然,且有,即有下面方程組:取對方程組進行求解(迭代法或者直接法)。二、數學原理觀察上述線性方程組的系數矩陣,顯然該矩陣是弱對角占優的三對角陣,可利用三對角方程組的追趕法求解。給出三對角陣(針對本題系數矩陣,給出九階方陣克勞特分解)的克勞特分解如下:其中為待定系數,追趕法公式及計算過程如下:計算待定系數的遞推公式:得求解,(3)求解:由此設計計算程序,并輸入系數即可完成線性方程組的求解。三、程序設計使用C語言進行計算程序的設計。定義數組a[8],b[9],c[8]存放三對角系數矩陣的三類值;定義數組d[9]存放方程組右側向量;定義m[8]存放待定系數β的值;定義數組x[9],y[9]存放方程組的解。輸入變量:a[8],b[9],c[8],d[9];輸出變量:x[9]。程序設計見附錄。四、結果分析和討論程序運行結果如下圖所示:圖2 題目二運算結果即原方程組的解為考慮,并將方程組的解中的無效數位去掉,則原物理問題的解向量(11階)為討論:使用追趕法直接求解三對角占優的系數矩陣所在的線性方程組計算結果與迭代方法相比在原理上更為可靠,且充分利用了系數矩陣的特點,大大減小了計算量和存儲空間,在解決類似問題的過程中優勢明顯。五、完成題目的體會與收獲通過本題目的計算,深入體會了追趕法求解三對角系數矩陣線性方程組的“追趕”過程,在實踐中加強了對理論知識的理解。題目三:數值積分一、題目衛星軌道是一個橢圓,橢圓周長的計算公式是, 這里是橢圓的半長軸, 是地球中心與軌道中心(橢圓中心)的距離, 記為近地點距離, 為遠地點距離, 公里為地球半徑,則, 某人造衛星近地點距離公里,遠地點距離公里, 試用Romberg方法求衛星軌道的周長,精確到。二、數學原理龍貝格方法在思想上不同于插值型求積公式,其目的是對近似值進行修正而得到更精確的計算公式,實質上是對復化梯形公式的多次修正。以下簡要介紹龍貝格算法的計算過程。待求解定積分為,以表示二分k次后求得的梯形值,以表示序列的m次加速值,理查森外推法的遞
總結
以上是生活随笔為你收集整理的复化梯形公式求椭圆周长C语言,C语言编程解线性,非线性方程,龙贝格算法.docx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java温度传感器用法_结合Androi
- 下一篇: 数字图像模式识别技术详解【笔记】