原创 多項式求值的秦九韶算法

多項式求值算法,如果僅用普通的多項式的求法,對於n次多項式,需要n/(n+1)次的乘法,n次加法,計算量大,改用秦九韶算法,能有效的降低時間複雜度,並且該算法還能順便給出多項式在該點的導數值,一舉多得。秦九韶算法在國外又稱Hern

原创 變步長梯形求數值積分

數值積分中,插值求積公式可以近似求積函數。對於插值函數,可以用梯形公式來近似,爲了滿足一定的精度,需要將求積區間分成很多個小的區間,分別用於梯形公式,但是由於某些時候步長不能很好的控制,所以需要變步長。本算法給出變步長求積公式,該

原创 01揹包問題詳解

01揹包問題詳解 1. 01揹包 1.1 題目 有N件物品和一個容量爲V的揹包。放入第i件物品佔用空間大小Ci,產生的價值是Wi。求解將哪些物品裝入揹包可使價值總和最大。 1.2 基本思路 這是最基礎的揹包問題,特點是:每種

原创 淺入淺出跨域問題

淺入淺出跨域 跨域很神祕,如果沒有業務需求,可能永遠都不會去接觸這個知識。但是有了業務需求,這個問題就必須要深入理解。 下面就詳細介紹下跨域。 1. 瀏覽器安全機制 Web 瀏覽器遵循(同源策略)不會允許訪問其他窗口中的文檔內容。

原创 試位法求解非線性方程的根

本次實現試位法的算法,該算法的背景如下: 該算法的詳細解釋如下: 該算法的實現如下: /* *試位法 *方程f(x)=0在區間[a,b]上連續,且f(a)f(b)<0,則方程f(x)=0在區間[a,b]上必有實根。 *函數

原创 全主元高斯消去法求解線性方程組

本次採用全主元求解線性方程組,比上次的列主元消去法http://blog.csdn.net/qq_26025363/article/details/53044843更加的精確,上次列主元只是選出列中最大的那個數,這次選出行、列中最

原创 4階經典龍格庫塔公式求解微分方程

本次求解微分方程,用4階龍格庫塔方法,該方法的代數精度高,比歐拉法,三階龍格庫塔都高,本次的實現很粗糙,由於本人沒有熟練掌握函數指針的方式,對於不同微分方程,並不能做到一個普適的輸入版本,所以本算法只能對本次的微分方程適用,等掌握

原创 三次拉格朗日插值多項式

本文屬於代數插值的內容,對於很多數據處理,比如物理實驗之類的,得到了很多個數據點,但是並不能找到一個解析的公式來描述,但是我們確實知道該函數是連續的,這樣,我們可以通過一系列的點,來插值,找出某個點的值,並且我們使用多項式來逼近,

原创 迭代法求解線性方程組(C++實現)

本系列是數值分析相關算法的文章,這次用迭代法求解線性方程組,不同於上次用高斯消元法之類的求解。迭代法對於稀疏矩陣方程組的運算,會大大提高。而如果用高斯相關的算法求解,會浪費大量資源計算無用的東西,所以有必要研究此算法。 本文章主

原创 算法導論(C++實現) chapter 2

博主打算將算法導論上的所有算法用C++實現一遍,以鍛鍊自己的算法能力和熟悉C++。我把第二章——算法基礎 所有能用C++實現的算法都實現了一遍,包括練習題和給的僞代碼。還是先貼代碼。 #include<iostream> usin

原创 對分法求非線性方程的根

對於非線性方程的求解,有時候很難找到解的解析函數,所以只能才用數值求解。常見的一些非線性方程爲 算法的基本原理:如果非線性方程f(x)=0,的左端函數f(x)在區間[a,b]上連續,並滿足f(a)f(b)<0,則方程至少有一個實根

原创 算法導論chapter6代碼實現

算法導論第6章講了堆排序和優先隊列,包括最小、最大。堆排序主要由幾個部分組成: 一個是維護堆的根結點最大的算法,該算法要求孩子結點已經是最大堆,否則不能調用。 第二個就是建堆算法,從不是葉子結點的第一個數開始(即n/2,假設n

原创 全區間厄米特插值算法

在某些插值問題中,不僅給出了插值點的值,也給出了插值點的導數值,這便可以運用厄米特插值公式進行插值。 厄米特插值公式如下: 下面給出代碼: //Hermite插值 /* *函數聲明double Hermit(double* x

原创 算法導論(c++實現)chapter4

算法導論的第四章——分治策略,主要的算法爲尋找最大子數組問題,還有矩陣乘法的Strassen算法,還有一些課後的練習題,主要講了求解遞歸式的三種方法:代入法(感覺像是猜測,然後用數學歸納法驗證),遞歸樹法(比較的直觀明瞭),主方法

原创 艾特肯逐步插值法

艾特肯(Aitken)逐步插值算法是代數插值中一個較爲普遍的算法,對於拉格朗日插值,誤差的餘項並不能判斷大小,而艾特肯插值法解決了餘項的精度問題,該方法可以通過精度的要求逐步提高插值的階,在插值過程中只需要通過兩個低階的插值結果進