精华内容
下载资源
问答
  • 配方, 如何用 matlab 进行多项式运算 (1) 合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量) (2)因式分解 syms 表达式中包含的变量 factor(表达式)......配方, 如何用 matlab 进行多项式运算 (1) 合并...

    配方, 如何用 matlab 进行多项式运算 (1) 合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量) (2)因式分解 syms 表达式中包含的变量 factor(表达式)......

    配方, 如何用 matlab 进行多项式运算 (1) 合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量) (2)因式分解 syms 表达式中包含的变量 factor(表达式)......

    因式分解:factor(X) 参量X可以是正整数、符号表达式数组或符号整数数组。 ?X为一正整数,则factor(X)返回X 的质数分解式。 ?X为多项式或整数矩阵,则factor(X)......

    多项式相除的命令函数deconv ? 命令格式:[q,r]=deconv(p1,p2) ? 说明:它表示多项式p1除以p2,商为q,余数为r,即p1=p2q+r。 多项式因式分解的命令函数......

    解: 3.20 、求解在 x=8 时多项式(x-1)(x-2) (x-3)(x-4)的值。 解: 3.21、 计算多项式乘法(x2+2x+2)(x2+5x+4)。解: 3.22、 计算多项式......

    可以对符号计算结果进行简化,诸如因式分解、同类项合并、符号表达式的展 开、符号表达式的化简和通分等等。 ? 合并同类项 collect(v) ---将表达式v的相同次幂的项......

    ? 其他常用化简函数(信息与格式可用 help命令得 出) collect( ) expand( ) factor( ) numden( ) sincos( ) 合并同类项 展开多项式 因式分解 提取多项式的......

    精品文档 第 1 章 MATLAB 概论 1.1 与其他计算机语言相比较,MATLAB 语言突出的特点是什么? MATLAB 具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等......

    了解和掌握多项式的创建和基本运算,熟练掌握多项式的各种化 简、提取和替换命令,掌握多项式因式分解和展开。初步掌握曲线拟合的方法,学会多项式 拟合和非线性最小二乘......

    第三讲 MATLAB的符号运算共37页文档_数学_自然科学_专业资料。符号运算的功能 符号表达式、符号矩阵的创建 符号线性代数 因式分解、展开和简化 符号代数方程求解 符号......

    合并同类项( s2=collect(s,x) %对s按变量x合并同类项(无同 类项) 类项) s2分解因式 factor(s2) % 对s2分解因式 (4)表达式化简 (4)表达式化简 MATLAB提供......

    Matlab 不仅能进行数值计算而且能进行符 号运算如:多项式因式分解、函数的求导、 求积分(原函数)、求解微分方程等; ? Matlab 还提供以批处理方式的脚本文件及 ......

    MATLAB 基本应用领域内容:线性代数,多项式与内插,曲线拟合,数据分析与统计...

    页脚内容15 >> r=[1 -7 2 40]; >> p=roots(r); -0.2151 0.4459 0.7949 0.2707 《MATLAB 程序设计基础》 3.4 计算多项式乘法(x2+2x+2)(x2......

    配方, 如何用 matlab 进行多项式运算 (1) 合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量) (2)因式分解 syms 表达式中包含的变量 factor(表达式)......

    (2)由根创建多项式 如果已知多项式得因式分解式或特征根,可由 MATLAB 函数 poly()直接得出特征多项式 系数向量,其调用格式为: p=poly(v) 如上例中: v=[0、......

    Matlab 不仅能进行数值计算而且能进行符 号运算如:多项式因式分解、函数的求导、 求积分(原函数)、求解微分方程等; ? Matlab 还提供以批处理方式的脚本文件及 ......

    (2)由根创建多项式 如果已知多项式的因式分解式或特征根,可由 MATLAB 函数 poly()直接得出特征多项式 系数向量,其调用格式为: p=poly(v) 如上例中: v=[0.......

    (f) %因子分解或因式分解 expand 的用法 >> syms ...

    (2)由根创建多项式 如果已知多项式的因式分解式或特征根,可由 MATLAB 函数 poly()直接得出特征多项式 系数向量,其调用格式为: p=poly(v) 如上例中: v=[0、......

    展开全文
  • 试于多领域的因式分解通法,MATLAB编程,采用创新化算法,准确无误!
  • 一个给定的多根多项式被分解为...p(x) = (x + 1)^50 p(x) = (x^4 - 1)^25 p(x) = (x - 123456789)^4 p(x) = (123x + 456)^4 p(x) = (x^4 -2x^3 +3x^2 -4x +5)^12 参考: FC Chang,“多根多项式因式分解”, 通过 f
  • matlab开发-因式分解多项式。将一个多根多项式分解成低次可分辨根多项式,然后求解。
  • 参考: FC Chang,“多根多项式因式分解” FC Chang,“通过 Monic 多项式减法得到的两个多项式的 GCD” 令人惊讶的是,这个简单的例程给出了非常高阶的测试多项式的预期结果,例如p(x) = (x + 1)^1000 p(x) = ...
  • MATLAB多项式应用

    2018-11-15 01:04:24
    MATLAB多项式应用

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

    第八章 多項式之應用

    對於多項式MATLAB也提供許多指令可供運算,相關的指令如下表:

    函數名稱 說明
    conv(p,q) 兩多項式相乘
    [q,r]=deconv (num,den) 兩多項式相除,q為商,r為餘數,num分子,den為分母
    roots 求多項式之根
    poly(r) 將根轉為多項式.
    polyval(p,x) 計算多項式之值,p為多項式之係數矩陣,x為變數值,可為矩陣型式
    polyvalm(p,X) 計算多項式之值,p為多項式之係數矩陣,X為變數值,為方矩陣型式
    residue 部份展開式之餘數.
    polyfit(X,Y,n) 多項式資料回歸,(X,Y)為對應資料,n多項式最高次方
    polyder (p) 多項式微分
    polyint(p,K) 多項式之積分,K為常數


    多項式中,主要以其係數組成一向量作為運算之基礎。多項式之通式可表示如下:

    F(x)=a1xn+a2xn-1+...+an-1x2+anx+an+1


    其中x 為變數,n為其最高之階,為變數x之次方。而a1, a2 ,…,an , an+1等則分別係數,可以利用向量矩陣表示。以上項之通式為例,其向量p為:


    p=[a1, a2 ,…,an , an+1]


    代表F(x)這個多項式。多項式間之運算則以其p向量為代表。例如,兩多項式之相加,設其向量p=[20 -7 5 10],另一為q=[1 8 1 -6],則相加後應為m=[21 1 6 4],亦即其多項式和為21X³+X²+6X+4。此處若兩向量之大小不同,則較少的前面元素應以零補齊。兩多項式相減時亦同。多項式若乘以一個常數,則直接以常數乘上每項係數或向量中之每個元素即可。但若為兩個非常數之多項數相乘或相除,則必須藉助MATLAB之指令conv或 deconv來運算才行。這兩個指令均有兩項輸入,分別為兩多項式之向量。例如兩多項式之向量分別為p,q:


    >>p=[1 5 3 4 1] %代表多項式X+5X3+3X 2+4X+1
    p = 1 5 3 4 1

    >>q=[8 3 -5 6] %代表多項式8X3+3X2-5X+6
    q = 8 3 -5 6

    兩者相乘後,設為M,則M應為:

    多項式乘法conv



    >>M=conv(p,q)
    M =
       8 43 34 22 35 1 19 6


    此多項式為

    8X7+43X6+34X5+22X4+35X3+X2+19X+6。


    多項式除法deconv


    今若將M除以q,利用deconv函數指令,其結果應為:


    >>[s,r]=deconv(M,q)
    s =
    1 5 3 4 1
    r =
    0 0 0 0 0 0 0 0

    此s向量與p向量相同,r則為除後之餘數,目前為零,因為完全除盡。例如:

    >>[s,r]=deconv(p,q)
    s =
    0.1250 0.5781
    r =
    0 0 1.8906 6.1406 -2.4688

    此時之商s為0.1250X + 0.5781;其餘項為

    1.8906X3+ 6.1406X2 -2.4688


    上述多項式相乘除之指令conv與deconv並不需要相同的向量長度。即使除法,其前項為分子,後項為分母,分子之長度通常比分母長,但並不必要如加法或減法,需在前面加零元素,以湊成相同的長度。

    多項式求值polyval


    其次為多項式值之計算可用polyval(p,x)指令計算多項式之值,其中p為多項式之係數向量,x為變數值,可為向量矩陣型式:


    >>x=0:5,p=[1 -3 3 6]
    x =
    0 1 2 3 4 5
    p =
    1 -3 3 6

    >>f=polyval(p,x)
    f =
    6 7 8 15 34 71


    上式中p代表多項式f(x)之向量,其所得值為f(0)、f(1),…f(5)分別為f向量之元素值。運算時,亦可合併為一個指令執行,只要位置放對就行:


    >>f=polyval([1 -3 3 6],[0:5])
    f =
        6 7 8 15 34 71

     

    8.1多項式之根

    令一多項式等於零,其x值即為其根。具有n階的多項式,應存在有n個根,但這些根可能為實數,也可能為複數或重根。若根為複數,只要其向量元素為實數,則其複數根常成對存在,或稱為共軛根,其型式為a±bi。

    roots


    求根的指令為roots(p),p為多項式之向量矩陣。如:


    >>roots([2 -2 -1 0 1])
    ans =
       1.0000 + 0.0000i
       1.0000 - 0.0000i
      -0.5000 + 0.5000i
      -0.5000 - 0.5000i

    結果得到兩個相同的實根1及-5±0.5i。在多項式中,最簡單的二次式ax²+bx+c=0之根可利用公式得解,其型式如下:

    x={(-b ±(b²-4ac)(1/2)}/2a

    若二次之型式為ax²+2bx+c=0,則其根之型式可改變為:

    x={(-b ±(b²-ac)(1/2)}/a

    設a=5,b=10, 則上式根可以計算如下:


    >>a=2;b=10;c=12;
    >>x1=(-b+sqrt(b.*b-4*a.*c))/(2*a)
    x1 = -2

    >>x2=(-b-sqrt(b.*b-4*a.*c))/(2*a)
    x2 = -3

    若用roots指令求解,則


    >>roots([2 10 12])
    ans =
    -3.0000
    -2.0000

    所得之答案相同。

    poly


    有根時,也可以利poly(r)指令將其轉回多項式之型式。以前面所得之兩個實根1及虛根 -5±0.5i為例,其對應多項式應為:


    >>poly([1, 1, 0.5+0.5i, -0.5-0.5i])
    ans =
    1.0000 -1.0000 -0.5000 0 0.5000

    其結果若分別乘以2後,應與前例之設定相同。由此可知,用根反求多項式係數時,其結果可能為整數倍數,其比例應一致的。而且,在poly(r)之輸入項r可為行向量或列向量,其結果應相同。

     

    8.2 非線性函數求根法(1)

    除多項式之尋根外,有些函數屬於非線性型式,其尋根法自有不同。在matlab中,有fzero、fminbnd及 function_handle可以運用。茲介紹如下:

    FZERO 尋找函數根之指令


    fzero之語法如下:

     x = fzero(fun,x0)
     x = fzero(fun,x0,options)
     [x,fval,exitflag,output] = fzero(fun,x0,options)


    通常要對任一個函數求其等於零之根,有如大海撈針,尤其函數若在零點時存在有許多根時,其所找出之根有時並不符合所望。為此,必須先給附近值或概略區間,使程式能順利找到所要的根。fzero指令之功能就是利用x0為第一個猜測值進行求根。若x0為常數,程式會先找到一個具有正負值區間但包含x0值之根。若設定根之範圍,則可改為矩陣之型式,不過所設定之範圍若其對應函數值無法產生正負符號,程式可能會給一個錯誤的信息。

    在輸出參數中,除得到根x之外,其對應之函數值照理為零,但若有差異,亦可利用第二個輸出參數fval。若在設定之範圍內得到NaN或Inf時,表示無解,但也可能以複數為最後的答案。FUN之參數則代表函數名稱,包括自訂函數在內。其名稱之前則需加@之符號。例如:

    >> X = fzero(@sin,3)
    X =
        3.1416

    >>> x = fzero(@cos,[1 2])
    x =
        1.5708

    函數也可以使用匿名函數,例如,若有一個匿名函數為 @(x) sin(3*x/5):

    >> X = fzero(@(x) sin(3*x/5),5)
    X =
        5.2360

    函數也可使用自訂函數,例如下面之自訂函數demofun:

    function f=demofun(x)
    f = x.^3-100;

    >> x=fzero(@demofun,1)
    x =
        4.6416


    若自訂函數有兩個以上輸入參數,則可採用匿名函數之型式,但只能針對其中一個當變數,其餘需事先設定為常數,例如:


    >> x=fzero(@(x) demofun(x),1)
    x =
        4.6416


    使用匿名函數時,其函數名稱也可使用函數握把,但不必加上@,例如:

    >>f = @(x)x.^3-5*x-6;

    >> z=fzero(f,3)
    z =
        2.6891


    參數options則以optimset函數產生,主要是設定尋根的過程參數,其中包括Display, TolX, FunValCheck及OutputFcn等項目。此外,exitflag輸出參數則是執行結果之代碼,其中:
    1FZERO找到適當值
    -1運算依output函數之設定停止。
    -3在設定之區間,其結果為NaN或Inf。
    -4找到結果為複數型式。
    -5FZERO可能接近單質點(singular point)

     

    8.3多項式分母之展開式

     

    多項式餘式residue


    多項式分母若無重根的情況,應可進行因式分解,並求得其係數,此可以利用residue指令求解,其語法如下:

       [r,p,k] = residue(b,a)
       [b,a] = residue(r,p,k)


    其中,b與a分別為兩個多項式。其中a為一分式之分母,b該分式之分子,兩者均為向量型式;而[r,p,k]等則為行向量,分別代表展開後之分子、分母及餘數之係數,若能除盡則k項應為零。r與p分別為餘數與極數,其個數應相等,但應比a之個數少一。

    當極點(根)均相異的狀況下,值若p中有相同值時,其解的型式必須稍作變化,例如:

    b =[ 3 -6 4]; a =[ 1 -5 8 -4];
    >> [r,p,k]=residue(b,a)
    r = 2
    4
    1
    p = 2
    2
    1
    k = []

    其結果應解釋為如下之型式:

    b(x)/a(x)=(3x²-6x+4)/(x³-5x²+8x-4)=2/(x-2)+4/(x-2)²+1/(x-1)

    RESIDUE這個指令也可以採用逆向方式反求A與B之多項數,只要將其參數反向即可,如:

    [B,A] = RESIDUE(R,P,K)

    其中RPK之定義如前述,但此時成為輸入項,輸出為A與B,但應注意其對應位置。下面為上述之反向例:

    >> [b,a]=residue([2 4 1],[2 2 1],[])
    b = 3 -6 4
    a = 1 -5 8 -4

    其所得結果與前述相同。

     

    8.4 非線性函數求根法-fminbnd

     

    FMINBND 非線性函數最小值


    fminrnd之功能是在特定區間尋找單一變數之函數之最小值。其指令型式如下:

    x = fminbnd(fun,x1,x2)
    x = fminbnd(fun,x1,x2,options)
    [x,fval,exitflag,output] = fminbnd(...)



    上述指令fminbnd之功能在於針對函數fun,在設定的範圍x1<x<x2中找尋其最小值。其值置於左邊之x中,而函數之對應值則置於fval內。其中fun為函數之握把,或函數之名稱。若為函數名稱則須在名稱前加@符號。


    >> X = fminbnd(@sin,3,4)

    X =

        3.9999


    也可以使用匿名函數:

    >> f = @(x)x.^3-2*x-5;
    >> [x,f] = fminbnd(f, 0, 2)
    x =
        0.8165
    f =
       -6.0887

    >>  x = fminbnd(@(x) sin(x)+3,2,5)

    x =

        4.7124



    在指令中之第四參數項options之參數則可利用optimset函數依下列參數進行設定:

    Display顯示之層次:'off'不顯示;'iter'顯示每次回圈之結果; 'final' 只顯示最後結果;'notify' (預設) 若函數不收斂時顯示。
    FunValCheck檢查目的函數是否正確,'on' 目標函數之結果為複數或 NaN時顯出警告;'off' 不顯示警告。
    MaxFunEvals函數容許之最大值。
    MaxIter容許最大迴圈數。
    OutputFcn指出使用者設定之呼叫定義函數。
    TolXx值之容許度。


    上述參數之設定可利用optimset函數,例如:

    >>  [X,FVAL,EXITFLAG] = fminbnd(@cos,3,4,optimset('TolX',1e-12,'Display','off'))

    X =
        3.1416
    FVAL =
        -1
    EXITFLAG =
         1


    輸出之第三參數為運算之狀態,與fzero中之第三參數相同:

    1fminbnd指令依據TolX收斂至x。
    0最大迴圈數。
    -1由 output函數決定終止。
    -2邊界不符合 (x1 > x2)。


    輸出之第四項為OUTPUT,其內容如下:

    output.algorithm使用之運算法
    output.funcCount函數計算之次數
    output.iterations迴圈之次數
    output.message離開信息

     

    8.5多項式曲線適配法

    多項式曲線適配法可以利用polyfit完成。利用現有之資料組合[x,y]以求最佳之多項式曲線,其語法如下:


      p = polyfit(x,y,n)
      [p,S] = polyfit(x,y,n)
      [p,S,mu] = polyfit(x,y,n)


    其中[x, y]為資料組,n為多項式之最高階數,p則是所得多項式之係數向量。S則為結構矩陣,其下有R、df、normr等欄位,代表QR之分解結構、自由度及副變量。

    範例:


    這個例子是利用現有資料適配erf(x)函數,並利用x之多項式表示。這個例子雖然不很適當,因為erf(x)函數有其特定範圍,一般多項式則沒有範圍。故利用資料適配的結果可能不會很理想。

    開始時先產生x之向量點,該其均勻分佈於一個區間,然後使用erf(x)函數進行估計:

    x = (0: 0.1: 2.5)';
    y = erf(x);

    設多項式最高階n=6,則

    p = polyfit(x,y,6)

    得到之結果,多項式係數為:

    p =

    0.0084  -0.0983   0.4217   -0.7435  0.1471   1.1064  0.0004


    為瞭解所得之多項式與實際值有多接近,可以使用polyval這個求值的函數,同時將其作成表格作比較,最後一項則為誤差:


    f = polyval(p,x);

    table = [x y f y-f]

    table =

        0          0          0.0004    -0.0004
        0.1000     0.1125     0.1119     0.0006
        0.2000     0.2227     0.2223     0.0004
        0.3000     0.3286     0.3287    -0.0001
        0.4000     0.4284     0.4288    -0.0004
        ...
        2.1000     0.9970     0.9969     0.0001
        2.2000     0.9981     0.9982    -0.0001
        2.3000     0.9989     0.9991    -0.0003
        2.4000     0.9993     0.9995    -0.0002
        2.5000     0.9996     0.9994     0.0002

    在這個區間內,看起來其適配情形還不錯,可以到小數三、四位。但不要高興太早,因為超出此範圍後,多項式會如脫韁之馬,很快就露出馬腳。利用下面程式內容,可以立即用圖形進行比較其誤差之大小,結果則請讀者自行執行。


    x = (0: 0.1: 5)';
    y = erf(x);
    f = polyval(p,x);
    plot(x,y,'o',x,f,'-')
    axis([0  5  0  2])

     

    8.6 非線性函數求根法-fminsearch

     

    FMINSEARCH指令


    此為尋求函數之最小值位置之另一個指令,或稱為尼德-米(Nelder-Mead)法。它可應用於多維非線性函數,不必使用範圍界定。指令之格式如下:

       x = fminsearch(fun,x0)
       x = fminsearch(fun,x0,options)
       [x,fval,exitflag,output] = fminsearch(fun,x0,options)


    fminsearch指令起始值為x0,尋找其附近fun函數之最小值,結果置於x。x可為常數,向量或矩陣。同理,options參數可由optimset函數設定。其項目包括 Display, TolX, TolFun, MaxFunEvals, MaxIter, FunValCheck及OutputFcn,讀者可以參閱手冊。

    >> X = fminsearch(@cos,3)

    X =
        3.1416

    ---------------------------
    >> f=@(x) cos(x)+sin(x);

    >> X = fminsearch(f,[5])

    X =

        3.9270

    >> X = fminsearch(@(x) cos(x)+sin(x),[5])

    X =

        3.9270


     

    8.7多項式矩陣值

    前述之polyval可計算一個多項式值,若輸入值為矩陣型式,則可使用polyvalm求值,其語法如下:


      Y= polyvalm(p, X)


    其中,p為多項式之係數向量,X為其變數值,以矩陣型式表示,但必須為方矩陣。
    例如:

    >> p=[1 5 12 40 15]
    p =
         1     5    12    40    15
    >> X=magic(4)
    X =
        16     2     3    13
         5    11    10     8
         9     7     6    12
         4    14    15     1
    >> m=polyval(p,X)
    m =
           89743         199         459       42109
            1765       23203       16615        7759
           11553        4999        3063       31599
             943       55063       70815          73

    >> m=polyvalm(p,X)
    m =
          395489      381218      383866      387530
          382538      390345      389154      386066
          386506      387834      388145      385618
          383570      388706      386938      388889
               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • 目录展开与分解因式expand()factor()转化符号x的多项式为数值向量多项式四则运算加减法乘法除法多项式求根多项式微分n*d的导数n/d的导数 在MATLAB中创建符号变量x,输入以下多项式。 n=(x+1)(x−2)(x+4)d=(x+3)(x+5)...

    在MATLAB中创建符号变量x,输入以下多项式。

    n=(x+1)(x2)(x+4)d=(x+3)(x+5)(x1) n=(x + 1)(x - 2)(x + 4) \\ d=(x+3)(x+5)(x-1)

    n=(x+1)*(x-2)*(x+4);
    d=(x+3)*(x+5)*(x-1);
    

    展开与分解因式

    expand()

    N=expand(n);D=expand(d);
    N =
     
    x^3 + 3*x^2 - 6*x - 8
    D =
     
    x^3 + 7*x^2 + 7*x - 15
    

    或用collect()函数

    N=collect(n);D=collect(d);
    

    factor()

    n=factor(N);d=factor(D);
    n =
     
    [ x + 4, x - 2, x + 1]
    d =
     
    [ x + 5, x - 1, x + 3]
    

    转化符号x的多项式为数值向量

    这一步可以不经过expand()等方法展开。

    N=sym2poly(N);D=sym2poly(D);
    N =
    
         1     3    -6    -8
    D =
    
         1     7     7   -15
    

    多项式四则运算

    加减法

    普普通通的向量加减法,返回值sum为两个多项式的和的系数向量。

    sum=N+D;
    sum =
    
         2    10     1   -23
    sum=poly2sym(sum) 
    sum =
     
    2*x^3 + 10*x^2 + x - 23
    

    乘法

    多项式的乘法就是卷积运算。故conv()函数可以处理这类问题。

    A=conv(N,D);
    A =
    
         1    10    22   -44  -143    34   120
    A=poly2sym(A) 
    A =
     
    x^6 + 10*x^5 + 22*x^4 - 44*x^3 - 143*x^2 + 34*x + 120
    

    除法

    [q,r]=deconv(N,D);
    q =
    
         1
    r =
    
         0    -4   -13     7
    

    q为商,r为余。

    多项式求根

    RN=roots(N);RD=roots(D);
    RN =
    
       -4.0000
        2.0000
       -1.0000
    RD =
    
       -5.0000
       -3.0000
        1.0000
    

    roots()返回根的行向量。

    多项式微分

    n*d的导数

    [(x+1)(x2)(x+4)×(x+3)(x+5)(x1)]dx \mathrm [(x + 1)(x - 2)(x + 4)\times (x+3)(x+5)(x-1)]{d}x

    P=polyder(N,D);
    P =
    
         6    50    88  -132  -286    34
    P=poly2sym(P)     
    P =
     
    6*x^5 + 50*x^4 + 88*x^3 - 132*x^2 - 286*x + 34 
    

    n/d的导数

    [(x+1)(x2)(x+4)(x+3)(x+5)(x1)]dx\mathrm {\left [\frac{(x + 1)(x - 2)(x + 4)}{(x+3)(x+5)(x-1)} \right ]}{d}x

    [p,q]=polyder(N,D);
    [p,q]=polyder(N,D)
    
    p =
    
         4    26    42    22   146
    q =
    
         1    14    63    68  -161  -210   225
    p=poly2sym(p)
    p =
     
    4*x^4 + 26*x^3 + 42*x^2 + 22*x + 146
    q=poly2sym(q)
    q =
     
    x^6 + 14*x^5 + 63*x^4 + 68*x^3 - 161*x^2 - 210*x + 225     
    
    展开全文
  • Matlab多项式 往期文章: Matlab多项式基本运算(1)( polyval和polyvalm的区别) Matlab多项式求值(2)(roots和poly的使用) 符号运算中的多项式 matlab通过系数矩阵进行多项式计算。先来看下例子: 加减运算没...

    Matlab多项式

    往期文章:
    Matlab多项式基本运算(1)( polyval和polyvalm的区别)
    Matlab多项式求值(2)(roots和poly的使用)


    符号运算中的多项式

    matlab通过系数矩阵进行多项式计算。先来看下例子:
    加减运算没什么难度,之间看乘除的表示:

    syms f g x;
    f=3*x^2+2*x+2;
    g=3*x+1;
    ans1=f*g;
    ans2=f/g;
    disp(ans1);disp(ans2)
    

    结果如下:

    (3x + 1)(3x^2 + 2x + 2)
    (3x^2 + 2x + 2)/(3*x + 1)

    可以发现,这个多项式并没有展开,因此就像没有计算过一样

    #在这里引入两个函数,一个是expand函数

    expand(a)

    表示将函数a展开,话不多说,看实例:

    ans3=expand(f*g)
    

    得到:

    9x^3 + 9x^2 + 8*x + 2

    #factor函数主要有两个用法

    1. 因式分解
      比如:
    syms a b;
    s=a^3-b^3;
    ans1=factor(s);
    disp(ans1)
    

    得到:

    [ a - b, a2 + a*b + b2]

    1. 分解质因数

    比如

    ans=factor(12

    可以得到

    2 2 3

    这个功能可以进行质数判断
    比如factor(13)=13
    一个数的质因数只有自己本身这一个,那这个数就是质数
    (‘1’这个情况特殊考虑)

    #再补充一个simplify函数
    就是将函数简化
    代码示例:

    syms a b f g h
    f=(a^2-b^2)/(a-b)
    p=simplify(f)
    

    得到结果

    a + b

    其中,simplify()其中参数也可以是多项式矩阵,对矩阵中的所有多项式依次进行化简
    代码示例:

    syms a b f g h
    f=(a^3-b^3)/(a-b)
    g=(a^2-b^2)/(a+b)
    h=a+3*b-2*b
    p=[f,g,h]
    ans2=simplify(p)
    

    结果

    ans2 =[ a2 + a*b + b2, a - b, a + b]

    在这个多项式矩阵中所有元素都被化简了

    且每个多项式在矩阵中的位置不变

    展开全文
  • 本篇博客是B站教学视频的学习笔记,...Matlab多项式与数据统计 % 介绍多项式的内容 p=[1,2,3,4]; f1=poly2str(p,'x'); % 生成好看的符号串 % disp(f1) 结果为 x^3 + 2 x^2 + 3 x + 4 f2=poly2sym(p); % 生成可用的符号.
  • MATLAB多项式运算与符号运算

    千次阅读 2017-11-10 09:58:33
    利用多项式运算和符号表达式运算十分方便,下面总结了一些常用的函数,并附上自己编写的将s域变换到z域的函数 多项式运算 1.r=roots(p)多项式求根 2.p3=conv(p1,p2)多项式相乘 3.p1=polyder(p)多项式求导 3....
  • [2018年最新整理]matlab中所有函数解析_太全了A aabs 绝对值, 模acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割all 所有元素均非零则为真alpha 透明控制angle 相角ans 最新...
  • 对于matlab求解符号运算中几个常用的函数,主要说一下因式分解、展开还有合并。 (1)对于因式分解使用的是factor()函数。 例1:factor函数对于纯数字也可以进行分解的 factor(112) ans = 2 2 2 2 7 例2:对于...
  • 有时候传递函数太长,算系数太麻烦,matlab上有一个函数可以方便计算。 比如有一个传递函数是G(s)= num=conv([1 3],conv([2 5],conv([3 6],[4 7]))); den=conv([1 4],conv([2 7],conv([6 8],conv([3 5],[8 9])))); ...
  • 对于matlab求解符号运算中几个常用的函数,主要说一下因式分解、展开还有合并。 (1)对于因式分解使用的是factor()函数。 例1:factor函数对于纯数字也可以进行分解的 factor(112) ans = 2 2 2 2 7
  • 这对于优化控制或优化过滤问题很有用 使用Cholesky分解进行频谱分解dc.dc*=aarho+bb*.q dcn 是归一化频谱因子使用 Toeplitz... Matlab自己使用了Cholesky因式分解程序,但这是将其应用于多项式频谱因式分解的一种方法。
  • 因式分解

    2017-09-07 20:59:02
    public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int number = sc.nextInt(); int n = 2; int Indexes = 0; while
  • 1 s2=simple(s1); 从各种方法中自动选择最简格式返回s1的化简格式 ...y=factor()因式分解 y=collect()合并同类项 4mathmatica 提取表达式的公共因子 s=FactorTerms(s1); s=factorterms(s2, e
  • 因式分解、展开、合并、简化及通分等 因式分解factor(f) >> syms x; f=x^6+1; >> factor(f) factor 也可用于正整数的分解 函数展开 expand(f) 多项式展开 >> syms x; f=(x+1)^6; >> ...
  • factor--符号矩阵的因式分解

    千次阅读 2015-12-25 19:50:29
    【功能简介】求符号表达式的因式分解,此外还能对整数进行素数因子分解。 【语法格式】 1.f=factor(n) 对整数n进行素数因子分解,返回包含n的素数因子的行向量。 2.factor(X) 对符号表达式或符号...
  • 因式分解算法 [1] 并使用 ProjectQ [2] 实现了它。 预言机的实现遵循了 [3] 中的命题。 我们还研究了创建与概率分布相对应的叠加的问题 [4] 并遵循 [5] 的实现。 我们提出了一种计算角度θ的解决方案,该解决方案...
  • 实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要用法如下:interp1(x,y,xi) 一维插值◆ yi=interp1(x,y,xi)对一组点(x,y) 进行插值,计算插值点xi的函数值。x为节点向量值,y为对应的节点...
  • matlab实现: % 嵌套乘法 % 使用霍纳方法以嵌套形式计算多项式的值 % 输入:多项式的阶d, % d+1个系数构成的数组c(第一个元素为常数项), % x坐标需要进行求值的x位置, % 如果需要的话,还有d个基点构成的数组...
  • Matlab计算二元域GF(2)上的不可约多项式

    千次阅读 多人点赞 2016-02-10 00:30:20
    这篇文章介绍二元域GF(2)上的不可约多项式的计算方法,并用Matlab程序计算不可约多项式.
  • 使用MATLAB进行符号运算:多项式的展开与合并等
  • 多项式解(三种方法MATLAB)

    千次阅读 2017-10-21 11:29:59
    % matlab系统自带方法计算 方法三 end 最后,老套路,宣传一波自己的公众号!(求关注哇!) 本人中大一肥宅,欢迎大家关注,请扫下面的二维码(〃’▽’〃) 如果觉得有帮助的话,可以扫码,赞赏...
  • MATLAB实验四实验报告

    2020-10-24 18:37:07
    了解和掌握多项式的创建和基本运算,熟练掌握多项式的各种化简、提取和替换命令,掌握多项式因式分解和展开。初步掌握曲线拟合的方法,学会多项式拟合和非线性最小二乘估计。在插值和样条方面,要掌握一维插值、二维...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 622
精华内容 248
关键字:

matlab多项式因式分解

matlab 订阅