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

2021-07-01 01:44:13 字數 1570 閱讀 1701

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定義函式的問題

沒有哪一部分是y,你沒有理解函式的本質 f是一個作用,使得x對映為 x 1 更基本的是叫做關係的一個 x與z 姑且不寫y,為了讓你清楚些 有關係,是說x的變化影響z,z的變化影響x 當x固定後,若只有唯一一個z與之對應,則z叫做x的函式,使x變化為z的作用我們記作g,即g x z 所以說,你可以任意...

matlab關於定義函式的問題

你可以這樣寫 x 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 y 5.8 4.7 10.3 13.9 18.6 21.2 24.1 32.0 45.1 47.4 62.1 69.9 84.5 89.0 104.6 11...

matlab中function 函式怎麼用

m函式除了直接用函式名呼叫之外,也可以進行引數傳遞,使得matlab應用更加方便。m函式檔案以function開頭,格式為 function 輸出變數 函式名稱 輸入變數 語句 例如 eg 1f.m function s f m s 0for n 1 m s s 1 n n end儲存為eg 1f....