Bonjour tout le monde,
je recherche une solution à un problème assez particulier.
mes inéquations sont :
-20*n*log10(1+a²*wc²)>=-Ap
-20*n*log10(1+a²*ws²)<=-As
wc,ws,ap et as sont des constantes définies à chaque fois que le problème est posé.
n est un entier relatif compris entre 1 et 30.
le n choisis serra le plus petit possible. ( en deçà d'une valeur l'équation n'est plus vérifiable quelque soit a ).
ensuite on trouve un intervalle pour a, et on souhaite la valeur qui corresponds à la moyenne géométrique de cette intervalle. ( a=sqrt(amin*amax) )
Il existe des méthodes, en version programme, ou fonction, et d'autre plus pragmatique et moins efficace je trouve, mais je souhaite que ce soit possible sous forme de système via le solveur, en utilisant le symbole sachant que pour indiquer que n est un entier relatif déjà pour commencer.
Bref si vous avez une idée je suis preneur.
Pour comprendre l'application, c'est pour du filtrage analogique du type 1/(1+tau*p)^n
Ap,as,wc, et ws correspondent au gabarit du filtre.
Système d'inéquations assez difficile.
5 posts
• Page 1 of 1
-
lancelot du lac
Niveau 10: GR (Guide de Référence)- Posts: 31
- Joined: 25 Sep 2012, 13:36
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Système d'inéquations assez difficile.
En fait, ton problème est vraiment très mal expliqué...
Tu veux que tes inégalité soient vraies pour tout "a", mais c'est impossible puisque si "a" tend vers l'infini, log10(1+a²wc²) fait de même et donc -20n*log10(1+a²wc²) deviendra forcément inférieur à n'importe quelle constante fixée à l'avance.
Il est pour l'instant impossible de te répondre !
Tu veux que tes inégalité soient vraies pour tout "a", mais c'est impossible puisque si "a" tend vers l'infini, log10(1+a²wc²) fait de même et donc -20n*log10(1+a²wc²) deviendra forcément inférieur à n'importe quelle constante fixée à l'avance.
Il est pour l'instant impossible de te répondre !
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Système d'inéquations assez difficile.
filtre à amortissement critique ;
Solution de code proposée par bisam
(16:21:02) Bisam: voici les grandes lignes d'un prog qui pourrait marcher demander les valeurs de wc, ws, Ap, AS
n:=1
test:=solve( inéquation1 and inéquation2, a)
while test = false
n:=n+1
test:=solve( inéquation1 and inéquation2, a)
endwhile
amax:=racine(10^(Ac/(20n))-1)/wc
amin:=racine(10^(Ap/(20n))-1)/wp
amoy:=racine(amax*amin)
Je testerais en rentrant.
Solution de code proposée par bisam
(16:21:02) Bisam: voici les grandes lignes d'un prog qui pourrait marcher demander les valeurs de wc, ws, Ap, AS
n:=1
test:=solve( inéquation1 and inéquation2, a)
while test = false
n:=n+1
test:=solve( inéquation1 and inéquation2, a)
endwhile
amax:=racine(10^(Ac/(20n))-1)/wc
amin:=racine(10^(Ap/(20n))-1)/wp
amoy:=racine(amax*amin)
Je testerais en rentrant.
-
lancelot du lac
Niveau 10: GR (Guide de Référence)- Posts: 31
- Joined: 25 Sep 2012, 13:36
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Système d'inéquations assez difficile.
Après de nombreuses questions et réponses sur le chat, j'ai effectivement enfin compris ce que lancelot du lac voulait.
En fait, on cherche tout d'abord le plus petit entier n tel que le système d'inéquations :
d'inconnue a, ait au moins une solution.
Ensuite, pour cet entier n, on cherche les valeurs extrêmes de a, notées a_max et a_min, et on en calcule la moyenne géométrique.
Lancelot a recopié du chat un début de programme que j'avais proposé.
Plus précisément, je pense que l'on peut écrire cela :
En fait, on cherche tout d'abord le plus petit entier n tel que le système d'inéquations :
-20*n*log10(1+a²*wc²)>=-Ap
-20*n*log10(1+a²*ws²)<=-As
d'inconnue a, ait au moins une solution.
Ensuite, pour cet entier n, on cherche les valeurs extrêmes de a, notées a_max et a_min, et on en calcule la moyenne géométrique.
Lancelot a recopié du chat un début de programme que j'avais proposé.
Plus précisément, je pense que l'on peut écrire cela :
- Code: Select all
Define Libpub filtre()=
Prgm
Local wc,ws,ap,as,n,amax,amin
Request "Donner la valeur de Ap",ap
Request "Donner la valeur de As",as
Request "Donner la valeur de wc",wc
Request "Donner la valeur de ws",ws
n:=1
While not(solve(-20*n*log(1+a²*wc²)>=-ap and -20*n*log(1+a²*ws²)<=-as and a>0,a))
n:=n+1
EndWhile
Disp "n est égal à ",n
amax:=racine(10^(ap/(20*n))-1)/wc
amin:=racine(10^(as/(20*n))-1)/ws
Disp "a_moyen vaut ",racine(amax*amin)
EndPrgm
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Système d'inéquations assez difficile.
Le soucis était dans la condition du while. Si c'est une expression, c'est ni true ni false. donc j'ai modifier pour
que ça marche. J'ai ajouter une limitation à 30, car un filtre d'ordre 30 coute très cher, et c'est assez rare d'en voir/faire.
Merci bien pour ton aide
que ça marche. J'ai ajouter une limitation à 30, car un filtre d'ordre 30 coute très cher, et c'est assez rare d'en voir/faire.
Merci bien pour ton aide

- Code: Select all
Define LibPub facritique(ap,as,wc,ws)=
Func
:©facritique(ap,as,wc,ws)
:Local test,n,amax,amin
:1→n
:solve(−10*n*log(1+a^(2)*wc^(2),10)≥−ap and −10*n*log(1+a^(2)*ws^(2),10)≤−as,a)|a>0→test
:While string(test)="false" and n<30
:n:=n+1
:solve(−10*n*log(1+a^(2)*wc^(2),10)≥−ap and −10*n*log(1+a^(2)*ws^(2),10)≤−as,a)|a>0→test
:EndWhile
:If n=30 Then
: Return undef
:EndIf
:n+1→n
:amax:=((√(10^(((ap)/(20*n)))-1))/(wc))
:amin:=((√(10^(((as)/(20*n)))-1))/(ws))
:√(amax*amin)→test
:approx(test)→test
:Return {"α="&string(test),"n="&string(n)}
:EndFunc
-
lancelot du lac
Niveau 10: GR (Guide de Référence)- Posts: 31
- Joined: 25 Sep 2012, 13:36
- Gender:
- Calculator(s):→ MyCalcs profile
5 posts
• Page 1 of 1
Return to Problèmes divers / Aide débutants
Who is online
Users browsing this forum: ClaudeBot [spider] and 50 guests