在matlab中,用兩種方法求函式sinx x cos2x

時間 2021-08-30 09:46:49

1樓:匿名使用者

注意matlab裡表示式的格式,利用syms定義符號,然後利用diff函式求符號導數:y=diff(x,n),求函式x的n階導數matlab裡執行如下:syms x y dyy=sin(x)/((x^2)+4*x+3);dy=diff(y,4)執行結果有點長,這是因為你的函式求導表示式比較複雜。

2樓:匿名使用者

做個測試,希望有所幫助。

**% by lyqmath

% 在matlab中,用兩種方法求函式sinx/(x+cos2x)的數值導數,

% 並在同一個座標系中做出f(x)的影象。

clc; clear all; close all;

%% 方法1

syms x

y = sin(x)/(x + cos(2*x));

dy = diff(y);

xt = linspace(0, 2*pi);

yt = subs(dy, x, xt);

%% 方法2

yt1 = diff(subs(y, x, xt));

xt1 = diff(xt);

%% 繪圖

figure; hold on;

plot(xt, yt, 'r-', xt(2:end), yt1./xt1, 'k:');結果

matlab中,一個函式有多個自變數,怎麼分別求導並代入具體數值,舉個例子f=x1+x2+x3,分

3樓:匿名使用者

求導用diff(expr,var,order),代入數值用subs(expr,var,val)。

4樓:無與a侖比

你好!我依照你來舉得例子自,簡單編寫了一個程式,為了清晰起見,語句寫得比較簡單,你看看:

syms x1 x2 x3

f = x1^2+x2^2+x3^2;

fx1 = diff(f,x1);

fx2 = diff(f,x2);

fx3 = diff(f,x3);

x11 = input('請輸入整數x1:');

x22 = input('請輸入整數x2:');

x33 = input('請輸入整數x3:');

subs(fx1,x1,x11)

subs(fx2,x2,x22)

subs(fx3,x3,x33)

輸出的subs就是賦值之後的每一個偏導的結果,你可以試著執行一下。

diff預設對x求導,如果有好幾個x,則預設對x1求導,預設求一介導。祝好~

用matlab求函式在指定點的數值導數

5樓:深眠者

用matlab求函式在指定點的數值導數**如下:

clear;

clc;

syms x

f = sqrt(x^2+1);

diff_f = diff(f);

y1 = subs(diff_f,x,1)y2 = subs(diff_f,x,2)y3 = subs(diff_f,x,3)結果:y1 =0.7071

y2 =0.8944

y3 =0.9487

6樓:匿名使用者

clear;

clc;

syms x

f = sqrt(x^2+1);

diff_f = diff(f);

y1 = subs(diff_f,x,1)y2 = subs(diff_f,x,2)y3 = subs(diff_f,x,3)結果:y1 =

0.7071

y2 =

0.8944

y3 =

0.9487

7樓:傲super福蘭奇

如果得到的是sym格式,只需要新增double 命令就可將sym轉換為double型

這樣就可以看到數字

clear;

clc;

syms x

f = sqrt(x^2+1);

diff_f = diff(f);

y1 = double(subs(diff_f,x,1));

y2 = double(subs(diff_f,x,2));

y3 = double(subs(diff_f,x,3));

結果:y1 =

0.7071

y2 =

0.8944

y3 =

0.9487

8樓:我是幸運小當家

x=1:3

f=inline('sqrt(x.∧2+1)')dx=diff(f([x,4]))

dx=0.8219 0.9262 0.9608

怎麼用數值的方法表示一個函式的導數且用matlab表示出來?

9樓:1喲

導數就是指函式的變化率

matlab中導數命令為diff,以一元的n階導數為例,首先宣告誰是自變數,然後給出原函式,程式如下:

syms x

diff('f(x)',x,n)

10樓:匿名使用者

clear;

clc;

syms x

f = sqrt(x^2+1);

diff_f = diff(f);

y1 = subs(diff_f,x,1)y2 = subs(diff_f,x,2)y3 = subs(diff_f,x,3)結果:y1 =

0.7071

y2 =

0.8944

y3 =

0.9487

matlab新手求教如何用matlab求導及求導後代入數值計算確定點的導數值

11樓:匿名使用者

用diff()來求導函式,用eval()來計算導數值。

具體**如下:

執行結果為:

用matlab求導數的結果怎麼不是表示式,而是數值呢?

12樓:匿名使用者

daoshu=diff(sin(a*x)*cos(b*x)),裡面的單引號在求導的時候不需要,加了但引號是求差值

13樓:匿名使用者

clear all

syms x a b

daoshu=diff(sin(a*x)*cos(b*x)結果:daoshu =

cos(a*x)*a*cos(b*x)-sin(a*x)*sin(b*x)*b

這個我就納悶了,你用的是哪個版本的matlab?

14樓:1煉客

>> clear a b

>> syms x a b;

>> daoshu=diff('sin(a*x)*cos(b*x)')

daoshu =

cos(a*x)*a*cos(b*x)-sin(a*x)*sin(b*x)*b

胚胎移植的兩種方法

務青芬御羅 a 胚胎移植常採用如術法和非如術法兩種方法,a正確 b 胚胎移植時,對供體 受體要進行選擇,選擇遺傳特性和生產效能優秀的供體,有健康的體質和正常繁殖能力的受體,b正確 c 受體對移入子宮的外來胚胎不發生免疫排斥反應,因此不需要對供體和受體進行免疫檢查,c錯誤 d 胚胎移植時,需用激素對供...

3 72 90 37 2用兩種方法簡易?

巧算過程。解題思路 四則運算規則 按順序計算,先算乘除後算加減,有括號先算括號,有乘方先算乘方 即脫式運算 遞等式計算 需在該原則前提下進行。解題過程 擴充套件資料 豎式計算 計算結果 先將兩乘數末位對齊,然後分別使用第二個乘數,由末位起對每一位數依次乘上一個乘數,最後將所計算結果累加即為乘積,如果...

3 72 90 37 2用兩種方法簡便?

巧算解題思路 四則運算規則 按順序計算,先算乘除後算加減,有括號先算括號,有乘方先算乘方 即脫式運算 遞等式計算 需在該原則前提下進行。解題過程 擴充套件資料 豎式計算 先將兩乘數末位對齊,然後分別使用第二個乘數,由末位起對每一位數依次乘上一個乘數,最後將所計算結果累加即為乘積,如果乘數為小數可先將其擴...