matlab積分編程
1. matlab的參數積分編程
前幾天寫了這個問題的程序,因時間問題未能及時回答。現看到樓上已經回答,但代碼以收費附件的方式提供,不便於交流,我談談自己的做法吧。
注意:以下列出幾種方法的代碼,是各自獨立的,可以分別直接復制到命令窗口裡面運行,或者保存成M文件之後運行。
方法1:符號積分
這種方法最為簡單直接,很容易看懂。使用符號運算求積分,對於無法求出解析解的情況,有時候可以計算得到高精度數值解。
參考代碼如下:
symsh
phi=atan(h/10.8);
alpha=int(sin(phi),0,h)/210;
T=linspace(0,400,20);
X=T*0;
Y=X;
fori=1:length(T)
t=T(i);
x=int(37.5*cos(phi+alpha),0,t);
X(i)=double(x);
y=int(37.5*sin(phi+alpha),0,t);
Y(i)=double(y);
end
plot(X,Y)
axisequal
xlabelx;ylabely
在有些版本中會提示「無法求出顯式解」(Explicit integral could not be found)的警告信息,如果不希望看到警告,可以在代碼前加一句
warningoffsymbolic:sym:int:warnmsg1

2. matlab 方程求解含積分
題主給出的含有積分式的方程,實際上是最大值積分方程,可以按極值問題來處理。如何求解:
第一步:創建極值目標函數,即 fmincon_fun(λ),其內容
y=-double(int(exp(-abs(F)/2)/sqrt(lambda)-exp(-abs(F)),F,-1,1));
第二步:創建極值約束函數,即 fmincon_con(λ),其內容
約束條件,ceq =1/8-double(int(exp(-abs(F)/2)/sqrt(lambda)-exp(-abs(F)),F,-1,1));
第三步:使用fmincon函數求出λ的最優解,即
[x,fval,exitflag] = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],[],[],@(x) fmincon_con(x));
說明:λ用x來表示
第四步:驗證約束條件是否滿足
第五步:編程後運行代碼,可以得到如下結果。

3. 怎麼用Matlab編程計算積分!!!
int
Integrate
symbolic
expression
Syntax
int(expr)
int(expr,
v)
int(expr,
a,
b)
int(expr,
v,
a,
b)
算了,給你舉兩個例子吧
x^2
積分:
>>
syms
x;
>>
int(x^2,x)
ans
=
x^3/3
x^2
從
1
積分到
5:
>>
int(x^2,x,1,5)
ans
=
124/3
注意前面一句話,syms表示定義變數
自己遇到問題多看手冊或者自己谷歌,網路知道上面專業人士不多的
4. matlab編程 xe^x 在0到正無窮上的積分
matlab計算積分,可以用int函數,具體實現如下:
symsx;%定義變數x
y=x*exp(-x);%函數形式
int(y,0,inf);%計算y在0到正無窮的定積分
%以上程序運行後,輸出1
int函數的一般調用形式為:
int(s):沒有指定積分變數和積分階數時,系統按findsym函數指示的默認變數對被積函數或符號表達式s求不定積分。
int(s,v):以v為自變數,對被積函數或符號表達式s求不定積分。
int(s,v,a,b):求定積分運算。a,b分別表示定積分的下限和上限。該函數求被積函數在區間[a,b]上的定積分。a和b可以是兩個具體的數,也可以是一個符號表達式,還可以是無窮(inf)。當函數f關於變數x在閉區間[a,b]上可積時,函數返回一個定積分結果。當a,b中有一個是inf時,函數返回一個廣義積分。當a,b中有一個符號表達式時,函數返回一個符號函數。
5. matlab中的積分編程
>> quad('x.*log(1+x)',0,1)
ans =
0.2500
>>
QUAD Numerically evaluate integral, adaptive Simpson quadrature.
Q = QUAD(FUN,A,B) tries to approximate the integral of scalar-valued
function FUN from A to B to within an error of 1.e-6 using recursive
adaptive Simpson quadrature. FUN is a function handle. The function
Y=FUN(X) should accept a vector argument X and return a vector result
Y, the integrand evaluated at each element of X.
Q = QUAD(FUN,A,B,TOL) uses an absolute error tolerance of TOL
instead of the default, which is 1.e-6. Larger values of TOL
result in fewer function evaluations and faster computation,
but less accurate results. The QUAD function in MATLAB 5.3 used
a less reliable algorithm and a default tolerance of 1.e-3.
Q = QUAD(FUN,A,B,TOL,TRACE) with non-zero TRACE shows the values
of [fcnt a b-a Q] ring the recursion. Use [] as a placeholder to
obtain the default value of TOL.
[Q,FCNT] = QUAD(...) returns the number of function evaluations.
Use array operators .*, ./ and .^ in the definition of FUN
so that it can be evaluated with a vector argument.
Notes:
Function QUADL may be more efficient with high accuracies and smooth
integrands.
Function QUADV vectorizes QUAD for array-valued FUN.
Example:
Q = quad(@myfun,0,2);
where myfun.m is the M-file function:
%-------------------%
function y = myfun(x)
y = 1./(x.^3-2*x-5);
%-------------------%
or, use a parameter for the constant:
Q = quad(@(x)myfun2(x,5),0,2);
where myfun2 is the M-file function:
%----------------------%
function y = myfun2(x,c)
y = 1./(x.^3-2*x-c);
%----------------------%
6. MATLAB中,定積分加減怎麼編程
題主給出的變積分,可以通過循環語句來解決。
第一步,將t劃分若干份,如t=0:100
第二步,使用for循環語句,求解x為某值時的積分值。即
for i=1:100
。。。。。。
%求解x為某值時的積分值
end
第三步,使用integral函數求解積分值,即
t1=t(i);
eq1=@(x)exp(-(x-100).^2/15^2);
eq2=@(x)exp(-(x-50).^2/20^2);
f(i)=integral(eq1,-inf,t1)+quadgk(eq2,t1,+inf);
第四步,使用plot函數,繪制該積分的數值解圖形。

7. 這兩個積分用matlab怎麼編程計算
這兩個積分用matlab怎麼編程計算,用int()函數求解,要得到符號解析值是比較困難的,但如已知R1、D等數值,是可以得到其數值解。如R1=10;D=5;則第一個積分可以這樣來計算。
>>symsxR1D
>>R1=10;D=5;
>>int(sqrt((2*R1-x)*x)/(x+D)^3,x,0,2*R1)
>>vpa(ans)
計算結果

8. matlab編程求無窮限定積分
matlab編程求無窮限定積分:
用如下程序:
syms x
f = exp(-x^2);
int(f, x, 0, inf)
結果是pi^(1/2)/2,即2分之根號派
9. Matlab怎麼計算定積分
Matlab計算定積分的具體步驟如下:1、以f(x)=e^2x+sin(x+π/3) ,積分下限:a=0,積分上限:b=π/4 為例。首先,建立被積函數M文件;點擊New,選擇Function;

