Hi, I am trying to integrate using the following function:
if true
syms h g x pi
h = 2.0545
g = 5.3442
C = 1
y = C - (exp(-2.*g.*i.*x./h)).*(C - cos(x).*((h.^2)./2) + (g.*x)/2.*h.*i)
yx = integral(y,-pi,pi)
end
however, I get the error "First input argument must be a function handle. "
Can anyone suggest a solution?
Thanks!

 採用された回答

KSSV
KSSV 2017 年 8 月 10 日

1 投票

h = 2.0545 ;
g = 5.3442 ;
C = 1 ;
y = @(x) C - (exp(-2.*g.*1i.*x./h)).*(C - cos(x).*((h.^2)./2) + (g.*x)/2.*h.*1i) ;
yx = integral(y,-pi,pi)

3 件のコメント

Sergio Manzetti
Sergio Manzetti 2017 年 8 月 10 日
編集済み: Sergio Manzetti 2017 年 8 月 10 日
Hi KSSV, tried your suggestion on a full model:
if true
syms h g x C
h = 1.0545;
g = 5.34428;
C = 40;
a = (C - (exp(-2.*g.*i.*x./h)).*(C);
b = (C - (exp(-2.*g.*-i.*x./h)).*(C);
y = @(x) a*b;
q = integral(y,10^-9,0);
end
but it gives:
Error in integral (line 88) Q = integralCalc(fun,a,b,opstruct);
José-Luis
José-Luis 2017 年 8 月 10 日
y = @(x) ((C - (exp(-2.*g.*i.*x./h)).*C) * ((C - (exp(-2.*g.*-i.*x./h)).*C);
In your anonymous function the @(x) is not the symbolic variable x.
Sergio Manzetti
Sergio Manzetti 2017 年 8 月 10 日
Thanks. It must have function and not a result or call to another function in other words..?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Spline Postprocessing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by