error in integration of function

6 次查看(过去 30 天)
ka
ka 2022-3-27
编辑: ka 2022-3-27
>> K=@(t,s)(12.*sin(2.*pi.*s).*cos(2.*pi.*s).*(3.*(sin(2.*pi.*t)-sin(2.*pi.*s))-2.*(cos(2.*pi.*t)-cos(2.*pi.*s))))./(sqrt(16.*pi.*pi+20.*pi.*pi.*cos(2.*pi.*s).^2)*(8+5.*sin(2.*pi.*t).^2+5.*sin(2.*pi.*s).^2-8.*cos(2.*pi.*(t-s))-10.*sin(2.*pi.*t).*sin(2.*pi.*s)));
this is my function I'm trying to integrate it but I'm getting error
F = @(x)exp(x);
Fp = zeros(N+1,1);
for i=1:N+1
x = (i-1)*h;
syms x s;
Fp(i) = int(24*K(x,s).*F(s),s,0,1);% integrating wrt s
end
I'm trying to integrate it after multiplying with F , N is a given no. we can take 100 for example, h=1/N
But I'm getting following error,
The following error occurred converting from sym to double:
Unable to convert expression into double array.
Error in rjpro (line 15)
Fp(i) = int(24*K(x,s).*F(s),s,0,1);% integrating wrt s

回答(1 个)

John D'Errico
John D'Errico 2022-3-27
编辑:John D'Errico 2022-3-27
You don't understand.
You define x. i and N are numbers.
i = 1;
N = 100;
h = 1/N;
x = (i-1)*h;
What is x now? A number. Great. It is well defined. It is a double.
whos x
Then what do you do?
syms x s;
x
whos x
Do you see that now x is no longer the numeric value you gave it?
syms does not just take the existing value, and make it a sym, with that numeric value. If overwrites the existigng value of x.
K=@(t,s)(12.*sin(2.*pi.*s).*cos(2.*pi.*s).*(3.*(sin(2.*pi.*t)-sin(2.*pi.*s))-2.*(cos(2.*pi.*t)-cos(2.*pi.*s))))./(sqrt(16.*pi.*pi+20.*pi.*pi.*cos(2.*pi.*s).^2)*(8+5.*sin(2.*pi.*t).^2+5.*sin(2.*pi.*s).^2-8.*cos(2.*pi.*(t-s))-10.*sin(2.*pi.*t).*sin(2.*pi.*s)));
F = @(x)exp(x);
Fp = zeros(N+1,1);
N = 100;
h = 1/N;
i = 2;
x = (i-1)*h;
syms s
int(24*K(x,s).*F(s),s,0,1)
ans =
int(-(144*exp(s)*cos(2*pi*s)*sin(2*pi*s)*(2*cos(pi/50) - 3*sin(pi/50) - 2*cos(2*pi*s) + 3*sin(2*pi*s)))/((4*pi^2 + 5*pi^2*cos(2*s*pi)^2)^(1/2)*(5*sin(pi/50)^2 - 10*sin(pi/50)*sin(2*pi*s) - 8*cos(2*pi*(s - 1/100)) + 5*sin(2*pi*s)^2 + 8)), s, 0, 1)
Given all that, can int solve the problem at all? It appears not to be the case.
Then I tried the numerical integration tool. It too fails.
vpaintegral(24*K(x,s).*F(s),s,0,1)
Error using sym/vpaintegral (line 204)
Failed precision goal. Try using 'MaxFunctionCalls'.
And that is not unexpected.
  1 个评论
ka
ka 2022-3-27
编辑:ka 2022-3-27
Does it mean that we can't integrate this function at all?@John D'Errico

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Formula Manipulation and Simplification 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by