how to define an integral function

I want to define a function in the integral form
f(x)=integral(g(z), z=0, z=x)
as an example:
for which I wrote:
fun = @(z) z^2+3*z-1;
x=linspace(0,1,100);
y = integral(fun,0,@(x) x)
plot(x,y)
But Matlab returned the following error:
Error using integral (line 85)
A and B must be floating-point scalars.
Error in IntegralFunction (line 8)
y = integral(fun,0,@(x) x)
Is it possible at all to do this in Matlab?

 採用された回答

Torsten
Torsten 2018 年 9 月 6 日

2 投票

fun=@(z)z.^2+3*z-1;
F=@(x)integral(fun,0,x);
F(10)

5 件のコメント

Saeid
Saeid 2018 年 9 月 6 日
Danke, Torsten!
Saeid
Saeid 2018 年 9 月 7 日
編集済み: Saeid 2018 年 9 月 7 日
Hi again Torsten! Actually, my aim to define a function like this was for the final result (in this case F(x)=x^3/3+3*x^2/2-x) to be a coefficient in a differential equation. Something like: y"+F(x).y'=y"+(x^3/3+3*x^2/2-x)*y'=0 Do you know if that is possible in Matlab?
Torsten
Torsten 2018 年 9 月 7 日
Yes, it's possible just the way I showed you above. What exactly is the problem when you want to use it in your context ?
Saeid
Saeid 2018 年 9 月 7 日
I tried the following format but it didn't work:
tspan = [0 5];
y0 = 0;
[t,y] = ode45(@(t,y) DYDT(t,y) , tspan, y0);
plot(t,y,'-o')
function dydt=DYDT(t,y)
fun=@(z)z.^2+3*z-1;
dydt=@(y)integral(fun,0,y)
end
Aishwarya Kasarla
Aishwarya Kasarla 2023 年 4 月 1 日
Hey, I am also stuck with the same proble, did you find the solution? Can you please help me out with this?

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

その他の回答 (0 件)

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by