用MATLAB求微分並求值,怎麼樣用MATLAB求函式的微分

時間 2022-11-26 05:25:51

1樓:大熊愛小寶

matlab 提供的函式diff( )可用來求解符號物件的微分,其呼叫的格式為

(1) diff(s,'v'):對符號物件s 中指定的符號變數v 求其1 階導數。

(2) diff(s):對符號物件s 中的預設的獨立變數求其1 階導數。

(3) diff(s,n):對符號物件s 中的預設的獨立變數求其n 階導數。

(4) diff(s,'v',n):對符號物件s 中指定的符號變數v 求其n 階導數。

下面舉例說明用法:

>> syms x n

>> y=sin(x)^n*cos(n*x);

>> xd=diff(y)

xd =

sin(x)^n*n*cos(x)/sin(x)*cos(n*x)-sin(x)^n*sin(n*x)*n

>> nd=diff(y, n)

nd =

sin(x)^n*log(sin(x))*cos(n*x)-sin(x)^n*sin(n*x)*x

至於你要求的微分值,請按照上述方法,然後呼叫函式subs()完成所求值,例如

subs(xd, x, 2) ,其中xd是微分後的表示式,x是自變數,2是指定的某點。

2樓:

用matlab求微分並求值的方法:

f =x^2+exp(x^2)+sin(x)*cos(2*x+1)

1、diff(s,'v'):對符號物件s 中指定的符號變數v,求其1階導數。

2、diff(s):對符號物件s 中的預設的獨立變數求其1階導數。

3、diff(s,n):對符號物件s中的預設的獨立變數求其n階導數。

4、diff(s,'v',n):對符號物件s 中指定的符號變數v求其n階導數。

即:>> syms x n

>> y=sin(x)^n*cos(n*x);

>> xd=diff(y)

xd =

sin(x)^n*n*cos(x)/sin(x)*cos(n*x)-sin(x)^n*sin(n*x)*n

>> nd=diff(y, n)

nd =

sin(x)^n*log(sin(x))*cos(n*x)-sin(x)^n*sin(n*x)*x

而微分值則要按照上述方法,然後呼叫函式subs()完成所求值就能求得了。

matlab是一款美國mathworks公司出品的商業數學軟體。matlab是矩陣實驗室(matrix laboratory)的簡稱。matlab用於演算法開發、資料視覺化、資料分析以及數值計算的高階技術計算語言和互動式環境,主要包括matlab和simulink兩大部分。

matlab目前只有英語和日語版,不提供中文版。

3樓:匿名使用者

syms x

f =x^2+exp(x^2)+sin(x)*cos(2*x+1)df=diff(f)

x=2f1=eval(f)

怎麼用matlab對兩個陣列求數值微分

4樓:照堂蒼

這個如果點列很密集的話,數值微分就是差分

那你就用迴圈結構咯

for ii=1:m

for jj=1:m

dy(ii)=(y(ii+1)-y(ii))/(x(ii+1)-x(ii));

endend

dy這樣 每相鄰兩個點的差分就能知道了 然後 成圖 就可以近似認為是微分了,其中m是已知的 看你的資料有多少個了

怎麼樣用matlab求函式的微分

5樓:匿名使用者

使用diff命令

符號運算

diff函式用以演算一函式的微分項,相關的函式語法有下列4個:

diff(f) 傳回f對預設獨立變數的一次微分值diff(f,'t') 傳回f對獨立變數t的一次微分值diff(f,n) 傳回f對預設獨立變數的n次微分值diff(f,'t',n) 傳回f對獨立變數t的n次微分值也即matlab求導命令diff呼叫格式:

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

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

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

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

數值微分函式也是用diff,因此這個函式是靠輸入的引數決定是以數值或是符號微分,如果引數為向量則執行數值微分,如果引數為符號表示式則執行符號微分。 如果輸入乙個長度為n的一維向量,則該函式將會返回長度為n-1的向量,向量的值是原向量相鄰元素的差,於是可以計算一階導數的有限差分近似。

先定義下列三個方程式,接著再演算其微分項:

>>s1 = '6*x^3-4*x^2+b*x-5';

>>s2 = 'sin(a)';

>>s3 = '(1 - t^3)/(1 + t^4)';

>>diff(s1)

ans=18*x^2-8*x+b

>>diff(s1,2)

ans= 36*x-8

>>diff(s1,'b')

ans= x

>>diff(s2)

ans= cos(a)

>>diff(s3)

ans=-3*t^2/(1+t^4)-4*(1-t^3)/(1+t^4)^2*t^3

>>simplify(diff(s3))

ans= t^2*(-3+t^4-4*t)/(1+t^4)^2

6樓:匿名使用者

matlab 提供的函式diff( )可用來求解符號物件的微分,其呼叫的格式為

(1) diff(s,'v'):對符號物件s 中指定的符號變數v 求其1 階導數。

(2) diff(s):對符號物件s 中的預設的獨立變數求其1 階導數。

(3) diff(s,n):對符號物件s 中的預設的獨立變數求其n 階導數。

(4) diff(s,'v',n):對符號物件s 中指定的符號變數v 求其n 階導數。

下面舉例說明用法:

>> syms x n

>> y=sin(x)^n*cos(n*x);

>> xd=diff(y)

xd =

sin(x)^n*n*cos(x)/sin(x)*cos(n*x)-sin(x)^n*sin(n*x)*n

>> nd=diff(y, n)

nd =

sin(x)^n*log(sin(x))*cos(n*x)-sin(x)^n*sin(n*x)*x

7樓:匿名使用者

樓上的兄弟已經說的挺好了,這裡給出乙個典型的例子,希望有所幫助,呵呵

如何用matlab求解微分方程並畫圖 80

8樓:匿名使用者

1、找到關於求解常微分方程的習題。

2、這裡用matlab求解,主要用到的就是「dsolve」,具體的格式如下,但是不僅僅侷限下面兩種,其中eq就是代表方程式,而con為初始條件。

3、這裡的「x」關於x的函式。知道語法就可以進行計算了。

4、在matlab中輸入如下,dsolve('d2y+2*dy+exp(x)=0','x'),並直接回車就可以顯示計算結果了。

5、框中為最終求解的通解。

9樓:匿名使用者

由於方程比較複雜,解析解不能用初等函式表示

只是要獲得影象的話,用數值計算的辦法可能更方便

fun=@(t,y) 1.44*(10^9)*(1-y).*exp(-109170./(8.314*t));

[t,y] = ode23t(fun,500:600,0);

dy=fun(t,y);

ax=plotyy(t,y,t,dy);

set(get(ax(1),'xlabel'),'string','t');

set(get(ax(1),'ylabel'),'string','\alpha');

set(get(ax(2),'ylabel'),'string','d\alpha/dt');

t是自變數,y是變數也就是alpha

dy是,y對t的導數

得到得到結果如下圖

從影象看出,在t=500時,alpha=0

大概在t=600時,d(alpha)/dt趨向於0,alpha趨向於1不變

但是由於是數值解,在t不斷增加的時候,d(alpha)/dt會在0附近振盪

所以t的取值不宜取得太大,這裡取500到600之間

而採用ode23t函式,減少振盪

實際上,當t增大到一定值的時候,d(alpha)/dt趨向於0,

函式趨向於保持恆定值,所以後續的振盪是不合理的

取一定的區間如上圖,已經可以很好地得到函式的變化趨勢了

10樓:匿名使用者

>> y = dsolve('dy=y*cos(x)/(1+2*y^2)','y(0)=1','x');

>> ezplot(y,[-10,10]) % [-10,10]為x區間

用matlab對這個方程左右同時微分

11樓:匿名使用者

用matlab對這個方程左右同時微分,可以直接用diff()函式命令。

>> syms x y z

>> diff(x^2+y^2+2*z^2-20==x^2+y^2+z-4,x,1)  %對x求微分(導數)

>> diff(x^2+y^2+2*z^2-20==x^2+y^2+z-4,y,1)  %對y求微分(導數)

>> diff(x^2+y^2+2*z^2-20==x^2+y^2+z-4,z,1)  %對z求微分(導數)

執行結果

注意,此方法適用於高版本的matlab

用matlab求微分方程數值解

matlab求數值微分

12樓:依思溪

1全部用差分來求即可,你這個問題,最好用相鄰2點連線的斜率來代替。

順便說一句,你的問題是不是回歸啊,離散的資料是沒有導數的啊,一元函式導數裡面一條重要的定理就是:可導必連續。

如果是回歸的話,命令regress即可。

13樓:匿名使用者

help diff

用matlab求最大值,matlab中求乙個矩陣的最大值及位置用哪個函式?

先把圖畫出來 ezplot 18 t 2 3 5 t 2 t 2 3 發現最大值在t 0,i 13左右,然後用fminsearch求其相反函式的最小值 因沒fmaxsearch function,所以只好這樣 在matlab的m.file中定義函式 function y inverse functi...

用matlab解方程,matlab求方程的解

syms w kc real tjw 7.8 kc 7.8 kc 0.11 w 2 j w solve abs tjw sqrt sym 1 2 w ans 2 11 1250 2145 kc 5 214500 kc 62500 368082 abs kc 2 1 2 1 2 2 11 1250 2...

matlab差分基礎問題,用matlab求解有限差分法問題

y diff x 計算x相鄰元素的差分,即y x 2 x 1 x 3 x 2 x n x n 1 若x為矩陣,diff x 可得列差分矩陣 y diff x,n 就是對x進行n階差分y diff x,n,dim 就是沿著定維dim的n階差分其實你只要看看matlab help,裡面都有的 是後乙個點...

用微分求3次根號8 1的近似值

求8.04 3 2 的近似值 解 作函式 f x x 3 2 取xo 8,x 0.04 那麼按公式 f xo x f xo f xo x 得8.04 3 2 f 8 0.04 f 8 f 8 0.04 其中f 8 8 3 2 2 2 16 2f x 3 2 x 1 2 f 8 3 2 8 3 2 8...

求用維納濾波方法處理雜訊的matlab程式必須

假設乙個點目標在x,y平面上繞單位圓做圓周運動,由於外界干擾,其運動軌跡發生了偏移。其中,x方向的干擾為均值為0,方差為0.05的高斯雜訊 y方向干擾為均值為0,方差為0.06的高斯雜訊。1 試設計一fir維納濾波器,確定最佳傳遞函式,並用該濾波器處理觀測訊號,得到其最佳估計。注 自行設定誤差判定閾...