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

2021-05-05 17:04:39 字數 3964 閱讀 1186

1樓:匿名使用者

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

2樓:匿名使用者

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

x=3;

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

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

3樓:和藹的禾鬥

我求解出現複數,感覺這不是你想要的結果,但我還是放這吧!

solve('((5.7182*x^2-9.4364*x+5.577)/(1-2*x))*log((1-x)/x)+3.7182*log(x)-1.704=0','x')

ans =

.50000000000000000000000000000000+.17473052282862965912408182829672*i

如何用matlab求方程的數值解

4樓:勇寒開強

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

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

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

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

5樓:匿名使用者

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)

6樓:匿名使用者

新建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求方程數值解

7樓:匿名使用者

>> 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(表示式,變數,變數的值),就是將表示式裡面的變數,用變數的值代進去。

8樓:匿名使用者

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

>>

9樓:開心金牛座

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

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

10樓:中醫傳承

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程式設計計算積分,怎麼用Matlab程式設計計算積分

intintegrate symbolic expressionsyntax int expr int expr,v int expr,a,b int expr,v,a,b 算了,給你舉兩個例子吧 x 2 積分 syms x int x 2,x ans x 3 3 x 2 從 1 積分到 5 int...

如何用matlab程式設計求解x32x210在

只會用抄 符號解。襲。syms x f x 3 2 x 2 1 solve f 0,x 結果如下 ans 1 5 1 2 2 1 2 5 1 2 2 1 2 用matlab求 x 3 2 x 5 0在 0,3 的解 不管bai 是用兩數值乘積的正負來判斷,du還是用b a來判zhi斷,效果是一樣 d...

用matlab求解二階微分方程,用matlab求解二階微分方程

用matlab的dsolve函式計算該二bai階微分方程的解析du值是有一定的zhi難度。只能用 dao數值分析的方法來求版解其數權值解。當然求其數值解,必須還得已知a 的具體數值。該問題可以用matlab的ode45函式求得。求解方法如下 1 建立微分方程的自定義函式,odefun x,y 2 當...