matlab代數題求解,求方程組的解。和多項式重根

時間 2021-09-16 03:13:51

1樓:匿名使用者

盛金公式判定

a=1;b=0;c=4;d=-4;e=-3;

d=-(3*b^2-8*a*c);

e=3*b^4+16*a^2*c^2-16*a*b*c+16*a^2*b*d-64*a^3*e;

f=-(b^3-4*a*b*c+8*a^2*d)^2;

a=d^2-3*e;

b=d*e-9*f;

c=e^2-3*d*f;

delta=b^2-4*a*c;

delta >0, 其餘均不為零,故根為四個,無重根實際上>> roots([1 0 4 -4 -3])ans =

-0.3523 + 2.2276i

-0.3523 - 2.2276i

1.1973

-0.4926

2樓:匿名使用者

直接用多項式的求根公式 roots

本題指令:

>> roots([1 0 4 -4 -3])ans =

-908/2577 + 597/268i-908/2577 - 597/268i2579/2154

-2467/5008

注,[1 0 4 -4 -3] 是多項式按降冪排列的係數。

此時有無重根可一目瞭然。

怎麼用matlab解含有字母系數的方程組的解,舉個簡單例子

3樓:大野瘦子

用法以這個為例:

x+a*y=10

x-b*y=1

其中x,y為變數,a,b為字母系數.

只要在matlab中輸入

syms x,y,a,b

[x y]=solve('x+a*y=10','x-b*y=1','x','y')

即可求出解

x =(a + 10*b)/(a + b)

y =9/(a + b)

對於函式solve的具體用法,可以通過輸入help solve來學習。

matlab中方程求解的基本命令

1.roots(p)  %求多項式的根,其中p是多項式向量。

例求x3-x2+x-1=0的根

解:>>roots([1,-1,1,-1])

注: [1,-1,1,-1]在matlab中表示多項式 x3-x2+x-1

2.solve(fun)     %求方程fun=0的符號解,如果不能求得精確的符號解,可以計算可變精度的數值解

例:用solve求方程x9+x8+1=0的根

解:>>solve(『x^9+x^8+1』)

給出了方程的數值解(32位有效數字的符號量)

3.solve(fun,var)     %對指定變數var求代數方程fun=0的符號解。

例:解方程 ax2+bx2+c=0

解:>>syms a b c x;

>>f=a*x^2+b*x+c;

>>solve(f)

如果不指明變數,系統預設為x,也可指定自變數,比如指定b為自變數

>>symsa b c x;

>> f=a*x^2+b*x+c;

>>solve(f,b)

4.fsolve(fun,x0)    %求非線性方程fun=0在估計值x0附近的近似解。

例:用fsolve求方程x=e-x在0附近的根

解:>>fsolve(『x-exp(-x)』,0)

5.fzero(fun,x0)   %求函式fun在x0附近的零點

例:求方程x-10x+2=0在x0=0.5附近的根

解:>>fzero(『x-10^x+2』,0.5)

4樓:匿名使用者

舉個簡單例子,解方程組

x+a*y=10

x-b*y=1

其中x,y為變數,a,b為字母系數。

只要在matlab中輸入

syms x,y,a,b

[x y]=solve('x+a*y=10','x-b*y=1','x','y')

即可求出解

x =(a + 10*b)/(a + b)y =9/(a + b)

對於函式solve的具體用法,可以通過輸入help solve來學習。

希望我的回答能夠解決您的疑問,謝謝。

5樓:匿名使用者

例:解方程組a*x+2*y=4,4*x+b*y=7matlab**:syms a b x y;

z=solve('a*x+2*y=4','4*x+b*y=7')即可。

matlab中怎麼求多項式的解

6樓:

用matlab解方程的三個例項

1、對於多項式p(x)=x3-6x2-72x-27,求多項式p(x)=0的根,可用多項式求根函式roots(p),其中p為多項式係數向量,即

>>p =

p =1.00 -6.00 -72.00 -27.00

p是多項式的matlab描述方法,我們可用poly2str(p,'x')函式 ,來顯示多項式的形式:

>>px=poly2str(p,'x')

px =x^3 - 6 x^2 - 72 x - 27

多項式的根解法如下:

>> format rat %以有理數顯示

>> r=roots(p)

r =2170/179

-648/113

-769/1980

2、在matlab中,求解用符號表示式表示的代數方程可由函式solve實現,其呼叫格式為:solve(s,v):求解符號表示式s的代數方程,求解變數為v。

例如,求方程(x+2)x=2的解,解法如下:

>> x=solve('(x+2)^x=2','x')

x =.69829942170241042826920133106081

得到符號解,具有預設精度。如果需要指定精度的解,則:

>> x=vpa(x,3)

x =.698

3、使用fzero或fsolve函式 ,可以求解指定位置(如x0)的一個根,格式為:x=fzero(fun ,x0)或x=fsolve(fun,x0)。例如,求方程0.

8x+atan(x)-=0在x0=2附近一個根,解法如下:

>> fu=@(x)0.8*x+atan(x)-pi;

>> x=fzero(fu,2)

x =2.4482

或>> x=fsolve('0.8*x+atan(x)-pi',2)

x =2.4482

________________________________________

當然了,對於該方程也可以用第二種方法求解:

>> x=solve('0.8*x+atan(x)-pi','x')

x =2.4482183943587910343011460497668

對於第一個例子,也可以用第三種方法求解:

>> f=@(x)x^3-6*x^2-72*x-27

f =@(x)x^3-6*x^2-72*x-27

>> x=fzero(f,10)

x =12.1229

對於第二個例子,也可以用第三種方法:

>> fun=@(x)(x+2)^x-2

fun =

@(x)(x+2)^x-2

>> x=fzero(fun,1)

x =0.6983

最近有多人問如何用matlab解方程組的問題,其實在matlab中解方程組還是很方便的,例如,對於代數方程組ax=b(a為係數矩陣 ,非奇異)的求解,matlab中有兩種方法:

(1)x=inv(a)*b — 採用求逆運算解方程組;

(2)x=a\b — 採用左除運算解方程組。

例:x1+2x2=8

2x1+3x2=13

>>a=;b=;

>>x=inv(a)*b

x =2.00

3.00

>>x=a\b

x =2.00

3.00;

即二元一次方程組的解x1和x2分別是2和3。

對於同學問到的用matlab 解多次的方程組,有符號解法,方法是:先解出符號解,然後用vpa(f,n)求出n位有效數字的數值解.具體步驟如下:

第一步:定義變數syms x y z ...;

第二步:求解=solve('eqn1','eqn2',...,'eqnn','var1','var2',...'varn');

第三步:求出n位有效數字的數值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);...。

如:解二(多)元二(高)次方程組:

x^2+3*y+1=0

y^2+4*x+1=0

解法如下:

>>syms x y;

>>=solve('x^2+3*y+1=0','y^2+4*x+1=0');

>>x=vpa(x,4);

>>y=vpa(y,4);

結果是:

x =1.635+3.029*i

1.635-3.029*i

-.283

-2.987

y =1.834-3.301*i

1.834+3.301*i

-.3600

-3.307。

怎樣有matlab解多項式方程

7樓:信玄居士

用matlab解方程的三個例項

1、對於多項式p(x)=x3-6x2-72x-27,求多項式p(x)=0的根,可用多項式求根函式roots(p),其中p為多項式係數向量,即

>>p =

p =1.00 -6.00 -72.00 -27.00

p是多項式的matlab描述方法,我們可用poly2str(p,'x')函式 ,來顯示多項式的形式:

>>px=poly2str(p,'x')

px =x^3 - 6 x^2 - 72 x - 27

多項式的根解法如下:

>> format rat %以有理數顯示

>> r=roots(p)

r =2170/179

-648/113

-769/1980

2、在matlab中,求解用符號表示式表示的代數方程可由函式solve實現,其呼叫格式為:solve(s,v):求解符號表示式s的代數方程,求解變數為v。

例如,求方程(x+2)x=2的解,解法如下:

>> x=solve('(x+2)^x=2','x')

x =.69829942170241042826920133106081

得到符號解,具有預設精度。如果需要指定精度的解,則:

>> x=vpa(x,3)

x =.698

3、使用fzero或fsolve函式 ,可以求解指定位置(如x0)的一個根,格式為:x=fzero(fun ,x0)或x=fsolve(fun,x0)。例如,求方程0.

8x+atan(x)-=0在x0=2附近一個根,解法如下:

>> fu=@(x)0.8*x+atan(x)-pi;

>> x=fzero(fu,2)

x =2.4482

或>> x=fsolve('0.8*x+atan(x)-pi',2)

x =2.4482

________________________________________

當然了,對於該方程也可以用第二種方法求解:

>> x=solve('0.8*x+atan(x)-pi','x')

x =2.4482183943587910343011460497668

對於第一個例子,也可以用第三種方法求解:

>> f=@(x)x^3-6*x^2-72*x-27

f =@(x)x^3-6*x^2-72*x-27

>> x=fzero(f,10)

x =12.1229

對於第二個例子,也可以用第三種方法:

>> fun=@(x)(x+2)^x-2

fun =

@(x)(x+2)^x-2

>> x=fzero(fun,1)

x =0.6983

最近有多人問如何用matlab解方程組的問題,其實在matlab中解方程組還是很方便的,例如,對於代數方程組ax=b(a為係數矩陣 ,非奇異)的求解,matlab中有兩種方法:

(1)x=inv(a)*b — 採用求逆運算解方程組;

(2)x=a\b — 採用左除運算解方程組。

例:x1+2x2=8

2x1+3x2=13

>>a=;b=;

>>x=inv(a)*b

x =2.00

3.00

>>x=a\b

x =2.00

3.00;

即二元一次方程組的解x1和x2分別是2和3。

對於同學問到的用matlab 解多次的方程組,有符號解法,方法是:先解出符號解,然後用vpa(f,n)求出n位有效數字的數值解.具體步驟如下:

第一步:定義變數syms x y z ...;

第二步:求解=solve('eqn1','eqn2',...,'eqnn','var1','var2',...'varn');

第三步:求出n位有效數字的數值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);...。

如:解二(多)元二(高)次方程組:

x^2+3*y+1=0

y^2+4*x+1=0

解法如下:

>>syms x y;

>>=solve('x^2+3*y+1=0','y^2+4*x+1=0');

>>x=vpa(x,4);

>>y=vpa(y,4);

結果是:

x =1.635+3.029*i

1.635-3.029*i

-.283

-2.987

y =1.834-3.301*i

1.834+3.301*i

-.3600

-3.307。

求解微分方程組的matlab程式

一般解非線性微分方程組可以用ode45,ode23等命令,程式設計時將p,v,th,x,y 記為x 5 x 1 x 2 x 3 x 4 方便方程組函式的編寫就這麼記號 下面便方程組函式,檔案命名為myfun.m function dx myfun t,x c n cx g r ta 引數項值自賦 d...

應用題 方程組要求列出方程組

第一題 設納什得分為x,特里得分為y,根據題意可列方程 1 x y 12 2 x 2y 10 3 2x 3y 將1代入2中可得y 22,由此可根據1判斷出x 34。又因為如果特里得分超過20分,則小牛隊贏,所以小牛隊獲得本場勝利。把1代入3中,可得y 24,因為22 納什得x分,特里得y分,根據題意...

方程組求詳細過程,方程組求詳細過程

1 2 得 1 3 3x 1 1 5 2x 1 1 2 4 3方程兩邊乘以15得 5 3x 1 3 2x 1 15 30 2015x 5 6x 3 15 50 21x 63 x 3把x 3代入 1 得 y 10 9 所以,x 3,y 10 9 1式加2式,前面最小公倍數,十五,後面直接相加。3x 1...