日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++多项式除法的探讨

發布時間:2023/12/20 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++多项式除法的探讨 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近的一項工作就是用vector實現多項式類,這個類需要完成多項式的數據結構的定義以及基本運算,包括加減乘除,前三個還比較容易,對于多項式的除法,因為有除不盡的情況,比如:

計算

其結果是:

明顯是除不盡的,但是按照普通的除法去做,余數就會被舍棄,當涉及到求值或者求導時,就會產生極大的誤差,尤其是在實現牛頓法求解高次多項式的數值解時,需要計算迭代點的函數值以及導數值,余數的舍棄必然使函數值產生偏差,其導數值也必然不準,也就使最后產生不靠譜的結果。

解決方案有兩種思路,也是我自己的思考過程,第一種,我想通過指針的形式將多項式除法的結果和余數都返回,然后在計算函數值和導數值的時候,需要將余數和除數再次相除,這樣做確實可以解決問題,但是,前提是需要將被除數,除數區分開,在單次除法的計算中問題不大,但是涉及到復雜函數構成時,就顯得困難了。

所以產生了第二種解決方案,就是遇到除法,不去計算結果,而是構造一個結構體,這個結構體有兩部分構成,一部分是被除數,一部分是除數,也就是變成分子分母的形式

template<typename T> struct Div_Poly {Poly<T> Numer_Poly; //分子--被除數Poly<T> Denom_Poly;//分母--除數 }

在涉及除法時,就直接傳值操作,而不進行實際的除法運算,求函數值時直接將函數值代入,求導數值時,利用導數的定義

?

進行計算。

delta_x可以設置為double類型的極小值,比如可以取?0.00000001,自己把握精度。

這部分代碼我將傳到的github上

Poly_class_based_on_vector

文件為demo_4.1.zip

其他為早期版本。

總結

以上是生活随笔為你收集整理的C++多项式除法的探讨的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。