R語言中求解一元方程的根

2020-12-12 翔宇亭IT樂園

在R語言中可以使用uniroot函數求解一元方程的根。uniroot函數的語法格式如下:

uniroot(f, interval, ..., lower = min(interval), upper = max(interval), tol = .Machine$double.eps^0.25, maxiter = 1000)

主要參數的含義如下:

f 要求解的方程;interval 用向量表示的區間;lower,upper 用於搜索解的下限和上限;tol 求解的精度;maxiter 最大迭代次數

該函數的結果是一個包含4部分的列表:求解的根root和在該點的函數值f.root;迭代次數iter和求解方程的近似估計的精度estim.prec。

求解一元一次方程

求解形如ax+b=0的根。如求解 3x + 2 = 0的根,編寫程序及運行結果如下:

R中求解一元一次方程的根

在該例子中,首先定義了一個函數f,用於返回形如ax+b的值。然後使用uniroot函數來求解,並將結果賦給root變量,搜索根的範圍為[-5, 0]。最終求得的結果為-0.6666667(root$root),將該值代入到函數中時的函數值為0(root$f.root)。

求解一元二次方程

求解形如f(x)=ax^2 + bx + c的方程的解。如求出方程x^2 - x - 6 = 0的根。編寫的程序及運行結果如下圖所示:

求解一元二次方程的根

從上圖可以看出該方程的一個根為-2,改變它的運算區間可以求出另外一個根:

re<-uniroot(f, c(0,3), a=1, b=-1, c=-6, tol=1e-9)

re$root

這裡求得的另外一個根為3。由於uniroot()函數每次只能計算一個根,而且要求輸入的區間端點值必須是正負號相反的。如果我們直接輸入(-3, 4)這個區間,那麼uniroot()函數會出現錯誤:

Error in uniroot(f, c(-3, 4), a = 1, b = -1, c = -6, tol = 1e-09) : 位於極點邊的f()值之正負號不相反

即要求f(lower) * f(upper) <=0。那麼在實際中如何確定根的大致範圍呢,一個做法就是通過繪圖來觀察,如本例中可以使用西面的代碼來繪圖:

f<-function(x,a,b,c){return (a*x^2+b*x+c)}

X<-seq(-6,6,by=0.1)

Y<-f(X,a=1,b=-1,c=-6)

plot(X,Y,type="l",col=2) #繪製函數圖形

abline(h=0,v=0,lty=2,col="gray") #繪製出橫軸和縱軸

繪圖結果如下圖所示:

繪製一元二次方程的函數圖像

從圖中可以看出,方程的一個根位於-3和0之間,另外一個根位於2和4之間,這樣我們取區間(-3,0)和(0,4)即可。同時也可以看出這兩個區間的兩個端點的函數值得符號是相反的。

求解一元三次方程

求解形如ax3+bx2+cx+d=0的根。如求x3-x-3=0的方程根。編寫的程序及運行結果如下:

求解一元三次方程

從上圖中可以看出,求得的該函數的一個根是1.6717,迭代次數為8。上面給出的程序中也給出了繪圖方法,其繪製的函數圖像如下圖:

一元三次方程的函數圖像

從該圖中可以觀察到該方程有一個根,大致位於[1, 2]之間,所以在上面的程序中給出的搜索根的範圍為[1, 2.5]是合理的。

關於求解一元方程根的方法就說到這裡,有什麼問題,可以給我留言。也歡迎關注交流。

歡迎關注交流

相關焦點

  • 以實例跟我學C語言:如何求解一元二次方程的根
    注意:這是一篇關於C語言編程的基礎語法內容,C語言大神請繞過。例子說明對於如下的一元二次方程:設計C語言程序,輸入一元二次方程的三個係數a、b、c,求解出該方程的兩個根,並且允許用戶在程序中多次輸入不同的係數,以求解不同的一元二次方程的解。
  • LabVIEW編程:使用公式節點,簡化程序代碼,求解一元二次方程根
    公式節點與C語言語言的區別在於一些變量類型的聲明上有著細微區別。利用公式節點,將數學公式的文本表達式輸入在公式節點的框圖內,並連接相應的輸入、輸出埠,則LabVIEW會自動根據公式計算出正確的結果,並從輸出端輸出。下面通過使用公式節點求解一元二次方程的例子,說明公式節點的編程方法。
  • 用MATLAB求解多根方程中的某個根方法
    MATLAB求解方程根的方法有很多,這裡不再贅述。但是在碰到多根方程的時候,有些根並不是我們需要的,需要捨棄。那麼如何通過MATLAB實現呢?
  • 一元二次方程--公式法求解
    求解相關公式:1.判別式:式子b2-4ac叫做一元二次方程ax2+bx+c=0(a≠0)根的判別式,常用希臘字母「Δ」表示,即Δ=b2-4ac 。2.求根公式:解一元二次方程時,先將方程化為一般形式ax2+bx+c=0,當b2-4ac≥0時,將a,b,c代入式子 就得到方程的根,這個式子叫做一元二次方程的求根公式。
  • 2018中考數學知識點:一元二次方程求解方法
    新一輪中考複習備考周期正式開始,中考網為各位初三考生整理了各學科的複習攻略,主要包括中考必考點、中考常考知識點、各科複習方法、考試答題技巧等內容,幫助各位考生梳理知識脈絡,理清做題思路,希望各位考生可以在考試中取得優異成績!下面是《2018中考數學知識點:一元二次方程求解方法》,僅供參考!
  • 數學專題——一元二次方程根的分布
    一元二次方程是初中數學中必學的內容,而且也是初中數學中的難點部分,在中考數學中所佔的比例也很大,因此學好一元二次方程極為重要。不僅如此,在歷年的高考試題中,一元二次方程總是以二次函數的形式出現,主要考查一元二次方程根的分布。
  • 模型法求解一元二次方程初探
    一元二次方程ax^2+bx+C=0(a≠0)的解法有多種,不同的模型採取不同的方法:1、(x+a)^2=b(b>0)型。左邊是完全平方式,右邊是一個正數或是一個完全平方式,採用兩邊開平方法。用因式分解的方法把方程左邊變成兩個因式的積,右邊是0。即(Ⅹ+a)(X+b)=0型。?3、公式法型。這個模型被稱為萬能型。只要一元二次方程根的判別式△≥0,都可用公式法求解。但若能用十字相乘法分解,優先用十字相乘法,在不能分解的前提下,只能用公式法了。
  • 一元二次方程求解過程推導
    一元二次方程的解法主要有配方法、公式法和因式分解法等。首先介紹配方法。將一元二次方程化為如下形式若解得以上是用配方法求解一元二次方程的過程,目的就是為了等式左邊配成一個完全平方式,如果等式右邊為非負,則方程在實數範圍內有解。公式法其實就是把上述用配方法求出的結果直接當成公式來用。
  • 初中數學一元二次方程的一般求解方法,可以整理到筆記本上
    初中階段我們學習了幾種方程,分式方程,一元一次方程,二元一次方程,其實不難發現,這幾種方程的求解殊途同歸,都是要化成一元一次方程來進行求解。初三我們要學習新的一種方程,一元二次方程,這個方程的求解與以往已經完全不同。
  • 初中數學一元二次方程,詳解根的考法,避開易錯點
    初中數學一元二次方程是比較重要的考點,也是中考常考考點,在中考中佔有很大的分量。一元二次方程關於根的考法也是比較多,而且不管是根的判別式還是根與係數的關係,都是應該掌握的重點。今天我們來看根的考法,同時避開易錯點,幫助同學們更好的掌握這部分知識。
  • 二次函數與一元二次方程的關係,明確研討方向,掌握求解方法
    初中數學中,我們已經知道二次函數在中考中的重要性,而且二次函數與一元二次方程的關係,也是考試中必須掌握的,因為與一元二次方程的關係,就涉及到與坐標軸交點的問題,以及根的相關情況。今天和同學們一起學習二次函數與一元二次方程的關係,希望同學們能夠明確研討方向,掌握求解方法。
  • 中考數學天天練之公式法求解一元二次方程練習題以及答案詳解
    走進2020年中考數學練習題之一元二次方程習題練習第二講本次課程我們主要來帶著大家練習一下如何使用公式法求解一元二次方程的根,通過這次課程學生要能靈活使用公式求解一元二次方程的根;習題目錄和分值題目分為四道大題,總共100分,分別為:一道選擇題
  • 初中數學一元二次方程求解例題分析,強化練習求根方法
    之前我們講解了一元二次方程的概念和幾種求解方法,比如直接開平方,配方法,因式分解法,公式法,這節課我們具體根據例題,來講解這幾種方法的應用。二、配方法在化成直接開平方法求解的時候需要檢驗方程右邊是否是非負的,如果是則利用直接開平方法求解即可,如果不是,原方程就沒有實數解.
  • 一元二次方程
    古埃及的紙草文書中也涉及到最簡單的二次方程,例如:ax2=b。大約公元前480年,中國人已經使用配方法求得了二次方程的正根,但是並沒有提出通用的求解方法。《九章算術》勾股章中的第二十題,是通過求相當於x²+34x-71000=0的正根而解決的。中國數學家還在方程的研究中應用了內插法。
  • 一元代數方程都有求解公式嗎?
    那麼一次代數方程是否都有求解公式?本文主要從基本的一元1、2次方程入手,並藉助拉格朗日方法、韋達定理、楊輝三角等性質,對較為複雜的一元3、4次方程進行了研究學習,且進一步對一元n(n≥5)次方程的問題進行了探討。一元代數方程(準確地說是一元多項式方程)的求解是一個古老的問題, 是代數學起源的最主要源頭之一。
  • 從一元二次方程的虛數根推導出高次函數的分解因式
    如果要求一個多項式的分解因式,首先就就是讓這個多形式等於0,求出這個方程的根,這個方程的根就給出了該多項式的所有因式我們根據這個思路來求解a^n+z^n的分解因式,這裡的z是未知數,大學的你應該對此比較熟悉
  • 一元二次方程整數根問題,中考數學常考題型,理清思路不丟分
    今天呢,開始給大家分享第一道例題,一元二次方程的整數根問題。(2) 由(1)知,方程有兩個實根,利用公式法或十字相乘法求解方程的根,再根據根是正整數的條件,分析整數m的取值,即可求解.>①保證方程是一元二次方程,即二次項係數不為;②保證-元二次方程有實根即判別式非負;③要求解出含參數的根,再對根進行討論。
  • 一元二次方程的根的處理
    本次課重點講解一元二次方程根的處理,其中包括根的個數的處理、特殊根的處理以及根與係數的關係,其中根的個數的處理需要用到的是判別式,而涉及到根的特殊要求的問題,則需要將含參的根解出來後再按要求進行處理,這兩種類型是本節課的重點內容.
  • 為什麼老師從不講一元三次方程的求解?
    由於馮塔納患有「口吃」症,所以當時的人們呢稱他為「塔塔裡亞」, 也就是義大利語中「結巴」的意思。後來的很多數學書中,都直接用「塔爾塔裡亞」來稱呼馮塔納。經過多年的探索和研究,馮塔納利用十分巧妙的方法,找到了一元三次方程一般形式的求根方法。這個成就,使他在幾次公開的數學較量中大獲全勝,從此名揚歐洲。
  • 一元二次方程(總結歸納)
    (2)配方法,理論上只要有實數根的的一元二次方程都可用此法,步驟:①變形:把二次項係數化為1;②移項:把常數項移到方程的右邊;③配方:方程兩邊都加上一次項係數一半的平方;④用直接開平方法求解.例1、 下列方程是一元二次方程的是________.① x^2+2x-8=0;② x^2+5=0;③ (x^2+3)^2=0;④ x^2+1/x=6;⑤ 5x^2-6y-1=0.解析:③中把括號去掉後未知數x的最高次數是4,④中1/x屬於分式,⑤中含有兩個未知數x和y,因此它們都不是一元二次方程.故正確答案是:①②.