matlab求含有多個引數的複雜函式的定積分

2021-08-08 10:12:17 字數 2696 閱讀 7818

1樓:求雅韻

warning: explicit integral could not be found.

找不到解析解,程式沒有問題。

實際上這是很正常的,例如一些看似簡單的函式積分可能很麻煩。

例如:y=sin(x^2)...橢圓積分

2樓:教學實驗講義

warning: warning, unable to determine if r+1/2*m is between 0 and m; try to use assumptions or

set _envallsolutions to true

warning: warning, unable to determine if -r+1/2*m is between 0 and m; try to use assumptions or

set _envallsolutions to true

warning: warning, unable to determine if 1/2*m-1/2*(-t*(t+4*r))^(1/2) is between 0 and m; try to

use assumptions or set _envallsolutions to true

warning: warning, unable to determine if 1/2*m+1/2*(-t*(t+4*r))^(1/2) is between 0 and m; try to

use assumptions or set _envallsolutions to true

warning: explicit integral could not be found.

> in sym.int at 58

in untitled at 6

int_y =

int(1/(t+2*r-(4*r^2-m^2+4*m*x-4*x^2)^(1/2)),x = 0 .. m)

你的這個 表示式 太複雜了。matlab用現有 的方法 求不出來

matlab複雜函式求定積分

3樓:匿名使用者

有那麼困難嗎?

除去符號a之外的積分式很容易計算:

>> quad(@(x)sqrt(9*(9+cos(2*x).^2)./(56+3*cos(2*x)).

^2+144*sin(2*x).^2./(56+3*cos(2*x)).

^4),0,pi)

ans =

0.5195

>> quad(@(x)sqrt(29^2./(56+3*cos(2*x)).^2+174*sin(2*x).^2./(56+3*cos(2*x)).^4),0,pi)

ans =

1.6293

當然,quad也可以換成quadl、quadgk之類的函式(2012a之後建議用integral).

在matlab中,怎樣對含兩個變數的函式中的一個變數定積分?

4樓:匿名使用者

這種問題最好給出具體的函式,而不是泛泛地問,因為根據函式的複雜程度,可能用解析法,也可能用數值法。

解析法適用於函式積分能夠求出解析表示式的情況,例如:

syms x y

f=x^2*y^3;

j=int(f,x,-5,5);

ezplot(j)

如果上述使用int求積分得不出解析表示式,一般就應該考慮使用數值方法求解了。如果需要,還是具體結合你的函式來說吧。

在matlab中怎樣求帶有引數的定積分?

5樓:

1、首先,如果要對quad函式傳遞附加引數(extra parameters),應該先搞清楚quad函式的呼叫格式:

q = quad(fun,a,b,tol,trace)

其中,第4、5個引數分別是tol和trace,不能想當然。你如果要傳遞附加引數,應該從第6個引數開始——儘管文件中並沒有提及,但quad函式的確可以接受附加引數。類似地函式還有很多,例如fsolve、fmincon等函式的函式。

在傳遞附加引數時,需要把前面的引數補齊,即使你不知道也不關心那些引數到底是幹什麼用的。幸運的是,這類函式絕大多數(如果不是所有的話)都支援用空陣列作為佔位符,例如:

q = quad(fun,a,b,,,r)

這樣,你也就可以不用管tol、trace到底該怎樣取值了。

2、其次,quad函式並不支援一次性對多個附加引數求解。解決的辦法一是用迴圈,另一是用arrayfun函式(其實後者本質上也是迴圈,只不過寫法上簡單些)。

求助利用matlab進行復雜函式的定積分方法! 詳情見補充,多謝了!

6樓:菰曉月寒

只要不是不定積分要求得到積分後的表示式,能實際計算出結果的積分就是定積分了。定積分不就是求函式在某區間或領域下的面積或體積麼,所以可以用梯形法之類的方法來近似求解這個面積。比如說步長為h,那麼求出f(0),f(h),f(2h),......

f(nh),

則f(x)在0~nh的定積分得到的面積就是h*(f(0)+f(h)+...+f(nh))。

matlab給出的求解積分的函式指令為intf=int(f,v,a,b),表示對f求指定變數v的定積分,積分割槽間為[a,b]。當v預設時,由symvar確認變數,當a,b預設時,則是求f指定變數的不定積分。

mybatis的xml怎麼判斷多個引數

多個引數一般要封裝成map或者實體類去當作入參處理的 怎樣判斷mybatis傳入引數的值 在mybatis的xml中替換成了when標籤,並且在判斷時,將判斷的值加上tostring 引數名為 parameter,不需要指定成傳入的引數名,參考 如下 select rownum rn from ta...

自己編的matlab函式如何輸出多個變數的數字結果

m,n好像是a,b的函式呀。結果當然是一個表示式 a,b 命令視窗輸入 x,y located a,b 裡面a,b值由你自己定。要把因變數都打出來,不然預設第一個因變數。 沫沫容 function dataout dataread filein,fileout,line fidin fopen fi...

用matlab怎麼計算帶引數的不定積分

int f,x f為被積函式,x為積分變數。如果是帶引數的,比如計算f ax b,則 如下 syms a b x f a x b answer int f,x 在matlab中怎樣求帶有引數的定積分 1 首先,如果要對quad函式傳遞附加引數 extraparameters 應該先搞清楚quad函式...