Error in quad function-maximum function count exceeded. "Singularity likely" warning when I use the QUADL function in MATLAB

2 Ansichten (letzte 30 Tage)
Hi all, I need help using the quadl function.
clear all close all clc format long gamma=1.4; r=10; n=1000; h =(r)/n; %h=0.01 M0=0.6; Pr=2/3; k1=1; k2=1.10; b1=0.375; b2=0.6; lambda=111.1532157006257798;
Integral_22= integral (@(x)((((1+(b1*(x.^2))).^((-k1)./(2*b1))).*((1+(b2*(x.^2))).^(k2./(2*b2)))).^lambda).*x,0,1);
for i=1:(n+1) x(i) = (i-0.5)*h ; end
for o=1:n
F1= @(x) ((((1+(b1*(x.^2))).^((-k1)./(2*b1))).*((1+(b2*(x.^2))).^(k2./(2*b2)))).^lambda).*x; Upper_Integral(o)= quadl(F1,0,x(o)); V(o)= Upper_Integral(o)./(x(o).*Integral_22); F2= @(x) ((-lambda).*(((k1*x)./(1+(b1*(x.^2))))-((k2*x)./(1+(b2*(x.^2)))))); U(o)=F2(x(o)); F3= @(x)((((1+(b1*(x.^2))).^((-k1)./(2*b1))).*((1+(b2*(x.^2))).^(k2./(2*b2)))).^lambda); F4= @(x) ((((1+(b1*(x.^2))).^((-k1)./(2*b1))).*((1+(b2*(x.^2))).^(k2./(2*b2)))).^lambda).*x; Upper_Integral2(o)= quadl(F4,0,x(o)); F5(o)= -((2./(x(o)).^2).*Upper_Integral2(o)); F6(o)=F3(x(o)); f(o)=((1./Integral_22).*(F5(o)+F6(o))).^2; w=@(x)(((((1+(b1*(x.^2))).^(((Pr)*k1)./(2*b1)))./((1+(b2*(x.^2))).^(((Pr)*k2)./(2*b2)))).^lambda).*((U(o).*(V(o).^2))+(x.*f(o)))); Integral(o)=quad(w,0,x(o)); d_Theta=@(x) (-(((((1+(b2*(x.^2))).^(((Pr)*k2)./(2*b2)))./((((1+(b1*(x.^2))).^(((Pr)*k1)./(2*b1)))))).^lambda).*(1/x).*Integral(o).*((M0.^2).*(Pr).*(gamma-1)))); F9(o)=d_Theta(x(o));
end
  • Warning: Maximum function count exceeded; singularity likely. > In quad at 99 *
I think that the problem is at the line Integral(o)=quad(w,0,x(o));
Anyone can help please?

Antworten (1)

Mike Hosea
Mike Hosea am 30 Sep. 2014
Is there some important reason why you are using INTEGRAL, QUAD, and QUADL, all three? QUAD and QUADL are deprecated. Use INTEGRAL for every case. Literally just substitute "integral" for "quad" and "quadl". INTEGRAL can even handle mild endpoint singularities, which QUAD and QUADL cannot. I tried it on your problem and there were no problems.

Community Treasure Hunt

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

Start Hunting!

Translated by