I want to integrate this function but I keep getting errors
1 次查看(过去 30 天)
显示 更早的评论
Here is the code
func = @(initial) L/sqrt((E*I)/(2*F)) - integral(@(theta)1./sqrt(cos(initial)-cos(theta)),initial,pi/2);
OS = fsolve(func,0.5);
o = func(OS);
aa = linspace(0,pi);%X and Y of the theoredical
yy = @(aa) integral(cos(aa)/sqrt(cos(o)-cos(aa)),aa, pi/2);
All i need is for yy to get the values of the integration for all the values of aa. It keeps saying i need a function handle but then it thinks yy is a function, and doesnt compute it. i just need the intregal of the fuction from variable aa to pi/2.
0 个评论
采纳的回答
Star Strider
2022-7-7
Try something like this —
[L,I,E,F] = deal(rand,rand,rand,rand); % Use Correct Values
func = @(initial) L/sqrt((E*I)/(2*F)) - integral(@(theta)1./sqrt(cos(initial)-cos(theta)),initial,pi/2);
OS = fsolve(func,0.5);
o = func(OS)
aa = linspace(0,pi);%X and Y of the theoredical
yy = @(aa) integral(@(o)cos(aa)/sqrt(cos(o)-cos(aa)),aa, pi/2, 'ArrayValued',1);
YY = arrayfun(yy, aa);
figure
plot(aa, real(YY), aa, imag(YY))
grid
legend('Real','Imag', 'Location','best')
.
2 个评论
更多回答(1 个)
Steven Lord
2022-7-7
yy = @(aa) integral(cos(aa)/sqrt(cos(o)-cos(aa)),aa, pi/2);
When you call this function handle it will attempt to evaluate the expression cos(aa)/sqrt(cos(o)-cos(aa)) expecting to obtain a function handle. If it does then it will pass that function handle into integral as the first input.
So I think what you want to do (if the integral is supposed to be computed over the variable o) is:
yy = @(aa) integral(@(o) cos(aa)/sqrt(cos(o)-cos(aa)),aa, pi/2);
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!