Bonjour,

J'essaye de calculer l'intégrale sur un intervalle [0,L] d'une dérivée seconde d'une fonction.
J'ai fait le code suivant mais j'obtiens la fonction suivant x grâce à sy.symbols('x') et y = 1-sy.cos(sy.pi*x/(2*L)).
Quand je fais un print de i3 l'intégrale de y" j'obtiens la primitive de y" mais je souhaite avoir la valeur de l'intégrale de y" sur l'intervalle défini plus haut.
Comment définir y" comme une fonction pouvant être intégrée sur l'intervalle?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import pylab as pl
import numpy as np
import sympy as sy
from scipy import integrate
from scipy.integrate import quad
from scipy import integrate as intg
from sympy import *
 
L = 60
D = 5
e = 0.2
E = 25000
rho = 2400
ksi = 0.05
 
x = np.linspace(0, L, 30)
 
def moment_quad():
    I = np.pi*((D)**4-(D-2*e)**4)/64
    return I
 
def masse_cheminee():
    S = np.pi*(((D/2)**2-(D/2-e)**2))
    m = rho*S
    return m
 
def fonction_deplacement(x):
    psi = 1-np.cos(np.pi*x/(2*L))
    return psi 
 
 
def masse_generalisee(x):
    m_tilde = (1-np.cos(np.pi*x/(2*L)))**2*m
    return m_tilde
 
def rigidite_generalisee(x):
    x = sy.symbols('x')
    y = 1-sy.cos(sy.pi*x/(2*L))
    yprime = sy.diff(y, x)
    ysec = yprime.diff(x)
    k_tilde = (ysec)**2*E*I
    return k_tilde
 
def facteur_excitation(x):
    gamma = (1-np.cos(np.pi*x/(2*L)))*m
    return gamma 
 
I = moment_quad()
m = masse_cheminee()
psi = fonction_deplacement(x)
m_tilde = masse_generalisee(x)
k_tilde = rigidite_generalisee(x)
gamma = facteur_excitation(x)
 
print("moment quadratique I = ", I, "m4")
print("masse lineaire ml = ", m, "kg/m")
print("raideur EI = ", E*I/(16*L**3))
 
i1 = intg.romberg(fonction_deplacement, 0, L)
i2 = intg.romberg(masse_generalisee, 0, L)
i3 = intg.romberg(rigidite_generalisee, 0, L)
i4 = intg.romberg(facteur_excitation, 0, L)