# Integrating without using the symbolic toolbox

27 ビュー (過去 30 日間)
Opariuc Andrei 2020 年 12 月 14 日
コメント済み: Opariuc Andrei 2020 年 12 月 14 日
syms x
f=log(45.*sin(x.^2) + cos(x)); % initial function
g=sqrt(1+diff(f).^2); % requirement step 1
h=int(g,0,pi/2) ;% requirement final step
instead of int i want to use " integral " and solve numerically ,if i remove the syms and introduce @(x) then i won't get a displayed result
and the result of final step while using the syms method is :
int(((sin(x) - 90*x*cos(x^2))^2/(45*sin(x^2) + cos(x))^2 + 1)^(1/2), x, 0, pi/2)
x belongs (0,pi/2)
How can i get rid of syms ?

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

### 採用された回答

John D'Errico 2020 年 12 月 14 日

This is an arc length integral. Apparently you wish to compute the length of that curve in the plane, with x going from 0 to pi/2. As a numerical integral, this is easy.
syms x
f=log(45.*sin(x.^2) + cos(x)); % initial function
fplot(f,[0,pi/2])
g=sqrt(1+diff(f).^2); % requirement step 1
gfun = matlabFunction(g);
First, it alway makes sense to plot everything, before you just throw it into any general tool.
fplot(g,[0,pi/2])
I don't epect that arc length integral has an exact solution. I might also be slightly worried about what seems to be a singularity at 0, though an integration tool should survive that. You can use vpaintegral, if you wish to stay in the symbolic domain.
vpaintegral(g,[0,pi/2])
ans =
4.73865
Or you can use integral.
integral(gfun,0,pi/2)
ans = 4.7386
Which seems to agree.
And, since I have a tool on the file exchange that can compute the arclength of a curve, I might try this:
ffun = matlabFunction(f);
xint = linspace(0,pi/2);
arclength(xint,ffun(xint),'spline')
ans =
4.7383
which also seems to agree pretty well.
##### 1 件のコメント表示 なし非表示 なし
Opariuc Andrei 2020 年 12 月 14 日
thx :)

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

### カテゴリ

Find more on Number Theory in Help Center and File Exchange

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by