關於用MATLAB求解隱函式的問題

時間 2021-07-01 01:43:38

1樓:匿名使用者

你是要求解析解還是數值解,如果你的matlab裝了symbolic toolbox的話,matlab可以直接求解析解,如下:

solve('(a+b*cos(c)-d*cos(e))/cos(x)=(f+b*sin(c)-d*sin(e))/sin(x)', 'x')

ans =

-(log((a*exp(c*i)*exp(e*i) + b*exp(2*c*i)*exp(e*i) - d*exp(c*i)*exp(2*e*i) + f*exp(c*i)*exp(e*i)*i)/(b*exp(e*i) - d*exp(c*i) + a*exp(c*i)*exp(e*i) - f*exp(c*i)*exp(e*i)*i))*i)/2

用subs函式可以將solve接出來的解析解裡面的變數用數字替換掉,然後得到數值解。

給你舉個簡單的例子,求a*x=b的解,先求解析解,然後用a=2,b=1代入求出數值解:

>> solution=solve('a*x=b', 'x')

solution =

b/a>> num_solution = subs(solution, '[a,b]', [2 1])

num_solution =

1/2>> num_solution = subs(num_solution)

num_solution =

0.5000

2樓:匿名使用者

for omega=0:pi/100:2*pi;

f=10;

z=pi;

s=solve((y-f/sqrt(((1-3./8*y^2)^2*z^2-omega^2)^2+(0.15*z)^2)),'y');

end上式中f(omega,y)=0是y的隱函式,用迴圈語句每次只解出第一次的y或者s值,其餘的解都說是沒有明確的函式可解。敬請哪位大師給出正確解法。十分感謝!

如何利用matlab求解隱函式

3樓:匿名使用者

matlab求導指令diff

1、這個函式是單詞differential(微分)的簡寫,用於計算微分,實際上計算的是差商,可以計算一階導數的有限差分近似。diff指令的具體用法(呼叫語法)如下:

diff(函式),求的一階導數;

diff(函式,n),求的n階導數(n是具體整數);

diff(函式,變數名),求對的偏導數;

2、下面是doc diff的幫助資訊:

3、對隱函式求導,下面就用matlab求一下隱函式cos(x+siny)=siny的導數。具體的**及計算結果如下圖所示:

用新的變數名dydx替代dgdx中的diff(y(x), x),具體的**及計算結果如下圖所示:

4、對變數dgdx1代表的符號方程關於dydx的求解,使得dy/dx通過x,y表達出來。具體的**及計算結果如下圖所示:

5、注意:

1.生成隱函式的指令中y必須寫成y(x),表明y是x的函式。

2.第三步中把dgdx變數所包含的diff(y(x), x)字串替換為dydx,這是必須的步驟,因為diff(y(x), x)不能作為求解的變數名使用。

如何用matlab對隱函式求導,matlab求隱函式導數的命令

天雲一號 在matlab中,可以利用diff函式對隱函式求導。其呼叫格式如下 diff 函式 求一階導數 diff 函式,n 求n階導數 n是具體整數 diff 函式,變數名 求偏導數 diff 函式,變數名,n 求n階偏導數 下面通過示例來說明diff函式對隱函式求導的方法。題目 隱函式y 3 x...

matlab怎麼寫函式檔案,用matlab如何編寫一個函式檔案,實現 n

matlab的函式檔案是按下列的格式進行編寫的。具體的格式為function 輸出變數 函式名稱 輸入變數 例如 用matlab的程式編輯器,寫函式檔案 m函式eg2 1f.mfunction s f m s 0 for n 1 m s s 1 n n end然後,儲存為eg2 1f.m 然後在指令...

matlab中關於fread函式的用法

隨便什麼名啦啦 fread函式在matlab中的功能 fread函式可從檔案中讀取二進位制資料 用法 a fread fid,count a fread fid,count,precision 其中fid為指標所指檔案中的當前位置,count指讀取的資料個數,precision表示以什麼格式的資料型...