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....