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維納濾波器,確定最佳傳遞函式,並用該濾波器處理觀測訊號,得到其最佳估計。注 自行設定誤差判定閾...