matlab求方程數值解,怎麼用matlab程式設計求解這個方程的數值解啊

時間 2021-05-07 20:01:23

1樓:匿名使用者

>> syms a1 a2 c1 c2

%以下的值你自己改一下

aa1=1;

cc1=2;

aa2=3;

cc2=4;

[x5,y5]=solve('y5=a1*x5+c1','y5=a2*x5+c2','x5','y5');

xx5=subs(subs(subs(subs(x5,a1,aa1),a2,aa2),c1,cc1),c2,cc2)

yy5=subs(subs(subs(subs(y5,a1,aa1),a2,aa2),c1,cc1),c2,cc2)

%%%%%subs(表示式,變數,變數的值),就是將表示式裡面的變數,用變數的值代進去。

2樓:匿名使用者

a1,c1,a2,c2的數值都知道,設為以下方程>> [x5,y5]=solve('y5=1*x5+1','y5=2*x5+sqrt(3)','x5','y5')

x5 =

1-3^(1/2)

y5 =

2-3^(1/2)

>> x=eval(x5);y=eval(y5);

>> [x,y]

ans =

-0.7321 0.2679

>>

3樓:開心金牛座

直接把幾個已知引數放進solve裡就行了啊

比如a1=2,就在輸a1的地方輸2

4樓:中醫傳承

fun=@(x,y)y.*log10(y)-x建立關於x,y的匿名函式

log10(x)由於matlab中自然對數的符號是log(與我們數學上的不同),以10為底的對數符號是log10,同理有log2,但是沒有log3等哦

vpa將得到的符號解轉化為指定精度的小數,比如vpa('sqrt(2)',10)將sqrt(2)表示10位精度的小數

fzero是matlab求解一元函式零點的內建函式

fsolve是matlab中求解方程組解(可以求解複數)的內建函式,功能強於fzero

fval是返回fun(x)的值,也就是說fzero和fsolve返回方程的解x,那麼此時的fun(x)就是fval

這個方法比較多 可以數值也可以解析求解

1.解析求解

>> solve('y*log10(y)=3','y')

ans =

3*log(10)/lambertw(3*log(10))

>> vpa(ans)

ans =

4.5555357051951280236911974082484

2.數值解法這個可以使用fsolve和fzero,前者的功能更加強大,但是對於這個問題fzero就可以了

>>x=3;

>>fun=@(y)y*log10(y)-x;

%使用fsolve

>> [x,fval]=fsolve(fun,rand)

optimization terminated: first-order optimality is less than options.tolfun.

x =4.5555

fval =

3.9620e-008

%使用fzero

>> [x,fval]=fzero(fun,5)

x =4.5555

fval =

-8.8818e-016

怎麼用matlab程式設計求解這個方程的數值解啊

5樓:匿名使用者

fun=@(x,y)y.*log10(y)-x建立關於x,y的匿名函式

log10(x)由於matlab中自然對數的符號是log(與我們數學上的不同),以10為底的對數符號是log10,同理有log2,但是沒有log3等哦

vpa將得到的符號解轉化為指定精度的小數,比如vpa('sqrt(2)',10)將sqrt(2)表示10位精度的小數

fzero是matlab求解一元函式零點的內建函式

fsolve是matlab中求解方程組解(可以求解複數)的內建函式,功能強於fzero

fval是返回fun(x)的值,也就是說fzero和fsolve返回方程的解x,那麼此時的fun(x)就是fval

這個方法比較多 可以數值也可以解析求解

1.解析求解

>> solve('y*log10(y)=3','y')

ans =

3*log(10)/lambertw(3*log(10))

>> vpa(ans)

ans =

4.5555357051951280236911974082484

2.數值解法這個可以使用fsolve和fzero,前者的功能更加強大,但是對於這個問題fzero就可以了

>>x=3;

>>fun=@(y)y*log10(y)-x;

%使用fsolve

>> [x,fval]=fsolve(fun,rand)

optimization terminated: first-order optimality is less than options.tolfun.

x =4.5555

fval =

3.9620e-008

%使用fzero

>> [x,fval]=fzero(fun,5)

x =4.5555

fval =

-8.8818e-016

6樓:匿名使用者

f=@(x,y)y.*log10(y)-x;

x=3;

y=fzero(@(y)f(3,y),10)

用matlab 解這個方程的數值解,急

7樓:匿名使用者

x=fsolve(fun,x0)求解fun(x)=0的解,x0是初值,fun是函式,x就是解

比如解方你的方程可定義一個函式

function y=f(x)

y=(ln(0.2-x)-ln(0.04-x))/(ln(0.2-x)-ln(0.013-x))-0.55

再到主介面

x=fsolve(@f,0) 0是初始值也可直接使用 fsolve(@(x)([(log(0.2-x)-log(0.04-x))/(log(0.

2-x)-log(0.013-x))-0.55]),0)

8樓:匿名使用者

新建script,輸入以下命令:

clcf=inline('(log(0.2-x)-log(0.04-x))/(log(0.2-x)-log(0.013-x))-0.55');

x=fsolve(f,x0)

修改f後面的0.55就可以計算多組

x0是初值,就是你估計的x會在哪個值左右,這是必須要的x=0.004

如何用matlab求方程的數值解

9樓:勇寒開強

fun=@(x,y)y.*log10(y)-x建立關於x,y的匿名函式

log10(x)由於matlab中自然對數的符號是log(與我們數學上的不同),以10為底的對數符號是log10,同理有log2,但是沒有log3等哦

vpa將得到的符號解轉化為指定精度的小數,比如vpa('sqrt

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

10樓:大野瘦子

用法以這個為例:

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)

11樓:匿名使用者

舉個簡單例子,解方程組

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來學習。

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

12樓:匿名使用者

例:解方程組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解一元超越方程,MATLAB求解一元超越方程,,求程式碼(混凝土破壞準則的內容)

缺少運算子 以及引數輸入格式有點問題 solve x 1 12 2.24 10 7 exp 5600 15 11 x 1 1 x ans 19.906557209304298701452077340886 10.326236962569359920664632589731 i solve x 1 1...

二元二階微分方程組求數值解的matlab程式

花開勿敗的雨季 方程或者初始條件有問題,請認真核實。原因 如果按照現在的初始條件,則第一個微分方程各項為0,方程不起作用。而且就演算法而言,二階 最高階 導數的係數為0,會導致數值積分演算法無法啟動。參考 大致如下 12 3456 78910 1112 1314 1516 17m 1 g 9.8 k...

MATLAB解三元二次方程,用matlab求解一個三元二次方程組

樓主這個方程組有特殊性,把三個方程的平方後可以吧所有的平方項都約掉,變成一個三元一次的方程組。若p1 p2 p3那麼,樓主的問題實際是找這三個點的圓心,只有一個解。所以肯定是三元一次的,因為這樣的圓心只有一個。1,2,3點不在同一直線上 當然如果p1 p2 p3也可以解,並且也只有一個解,不過就不是...