maple2015

120 Reputation

6 Badges

5 years, 155 days

MaplePrimes Activity


These are questions asked by maple2015

Hi

Why Maple can't  calculate following definite double integral:

Error, (in simpl/Re) too many levels of recursion

The approximated midpoint intgration gives the value -0.4552861717e-1

The Legendre root nodes with Christoffle weights gives the value -0.4552311444e-1

 

Thanks

Hi
I have the serious problem with time consuming integrations!
Is there a way to calculate the integrations in less possible time?

restart;

m := 40:

L := 5:

E :=70*(1-(y+0.5)^2)+380*(y+0.5)^2:

beta := Pi^2/L^2:

phi := add(a[n]*y^n, n = 0 .. m):

Eq := diff(phi, y$2)+(diff(E, y))*(diff(phi, y))/E+((diff(E, y$2))/E-((diff(E, y))/E)^2)*phi-2*beta*(1.3)*(phi-1):

st := [seq(coeftayl(Eq, y = 0, j), j = 0 .. m-2)]:

for k to m-1 do

a[m-k+1] := solve(st[m-k], a[m-k+1])

end do:

phi := subs(solve({eval(phi, y = -sqrt(-z^2+1)), eval(phi, y = sqrt(-z^2+1))}, {a[0], a[1]}), phi):

# One of the following integrations must be computed:

# Cartesian

int(int(E*phi, z = -sqrt(-y^2+1) .. sqrt(-y^2+1)), y = -1 .. 1);

# Polar

int(int(subs(z = r*cos(t), y = r*sin(t), E*phi*r), r = 0 .. 1), t = 0 .. 2Pi);

_____________________________________________________________________________

Moreover, I had the same problem before:

https://www.mapleprimes.com/questions/223886-Time-Consuming-Integration

 

Dear Friends
Is there a way to solve a complicated integration in less possible time?

Thanks

_________________________________________________________________________________
 

restart;
Digits := 100:
tm := time():
with(LinearAlgebra):

m := 6:
a := 0.1:
b := 10*a:
E := 1:
h := 1:
nu := 0.3:

w := (r-b)^2*(r-a)^2*add(add(W[n, i]*r^n*t^(i-n), n = 0 .. i), i = 0 .. m):
ur := -z*(diff(w, r)):
ut := -z*(diff(w, t))/r:
er := diff(ur, r)+(1/2)*(diff(w, r))^2:
et := ur/r+(diff(ut, t))/r+(diff(w, t))^2/(2*r^2):
grt := diff(ut, r)-ut/r+(diff(ur, t))/r+(diff(diff(w, t), r))/r:
u := -(1/2)*E*(2*er*et*nu+er^2+et^2)/(nu^2-1)+(1/2)*E*grt^2/(2*(1+nu)):

PI := int(int(int(u*r, z = -(1/2)*h .. (1/2)*h), t = 0 .. 2*Pi), r = a .. b)-0.5*P*(int(int(r*(diff(w, r))^2, r = a .. b), t = 0 .. 2*Pi)):

Time = time()-tm;

Hi

Please download and check the attached file.
It seems when you run the code more than one time, various results are obtained each time.

What is the reason? How it can be fixed?

Thanks


 

restart; Digits := 20; tm := time(); with(LinearAlgebra); m := 6; a := .1; b := 10*a; E := 1; h := 1; nu := .3; ur := -w*z+u0; u0 := 0; ut := add(add(T[n, i]*r^n*t^(i-n), n = 0 .. i), i = 0 .. m); w := (r-b)^2*(r-a)^2*add(add(W[n, i]*r^n*t^(i-n), n = 0 .. i), i = 0 .. m); er := diff(ur, r); et := ur/r+(diff(ut, t))/r; ert := 1/2*(diff(ut, r)-ut/r+(diff(ur, t))/r); u := -(1/2)*E*(2*er*et*nu+er^2+et^2)/(nu^2-1)+2*E*ert^2/(2+2*nu); N := sum(i+1, i = 0 .. m); PI := int(int(int(u*r, z = -(1/2)*h .. (1/2)*h), t = 0 .. 2*Pi), r = a .. b)-.5*P*(int(int(r*(diff(w, r))^2, r = a .. b), t = 0 .. 2*Pi)); s1 := seq(indets(add(add(T[n, i], n = 0 .. i), i = 0 .. m))[k] = c[k], k = 1 .. N); s2 := seq(indets(add(add(W[n, i], n = 0 .. i), i = 0 .. m))[k] = c[k+N], k = 1 .. N); PI := subs(s1, s2, PI); for k to 2*N do diff(PI, c[k]); if % = 0 then ex := `union`({}, {k}) else eq[k] := % end if end do; NE := seq(ex[j], j = 1 .. numelems(ex)); M := GenerateMatrix([`$`(eq[j], j = 1 .. 2*N)], [`$`(c[j], j = 1 .. 2*N)])[1]; M := DeleteColumn(DeleteRow(M, NE), NE); Determinant(M); 12*fsolve(%, P = 0 .. 1)*(-nu^2+1)*a^2/(E*h^3); Time = time()-tm

Time = 85.363

(1)

``


 

Download Stability.mw

# Bending Moment Envelope Curve for Isostatic Two-Span Beam

restart:

with(plots):

with(Optimization):
PD:= proc (L1, L2, L3, N)

local l, R, Y, M, M1, M2, V:

R[1]:= piecewise(x <= L1, (L1-x)/L1, 0):

l[1]:=L1:

l[2]:=L2:

l[3]:=L3:

solve([add(R[i], i = 1 .. 3) = 1, add(R[j]*add(l[i], i = 1 .. j), j = 2 .. 3) = x], [R[2], R[3]]):

R[2]:=rhs(%[1][1]):

R[3]:= rhs(`%%`[1][2]):

M1:=piecewise(y <= add(l[i], i = 1 .. 2), R[1]*y, `and`(add(l[i], i = 1 .. 2) < y, y <= add(l[i], i = 1 .. 3)), R[1]*y+R[2]*(y-add(l[i], i = 1 .. 2))):

M2:=piecewise(y <= x, 0, x-y):

for Y to N do eval(M1+M2, y = Y*add(l[j], j = 1 .. 3)/N):

M[Y]:=Maximize(abs(%),x=0..add(l[j],j=1..3))[1]

end do:

pointplot(`<,>`(seq(i*add(l[j], j = 1 .. 3)/N, i = 1 .. N)), `<,>`(seq(M[i], i = 1 .. N)), color = red, symbol = asterisk):

display(%, axis = [gridlines = [10, color = black]], size = [700, "golden"], axesfont = [Times, 16])

end proc:

3 4 5 6 7 8 9 Page 5 of 12