Calcul sur les variétés avec ALIAS

1  Introduction

Même si ALIAS est principalement orienté vers la résolution des systèmes de dimension 0 (c'est-à-dire admettant un nombre fini de solutions) il est toutefois possible d'obtenir des informations sur les systèmes de dimension supérieur à 0. On peut en effet calculer une approximation de la variété solution d'un système sous la forme d'une liste de boîte qui va la décrire. Ici solution doit s'entendre par toute boîte pour laquelle Pour obtenir cette approximation de la variété il suffit de placer le flag `ALIAS/ND` à 1 et de donner dans `ALIAS/ND_file` le nom du fichier dans lequel sera écrit les boîtes qui constitueront l'approximation. ALIAS va alors examiner les boîtes et écrira dans le fichier les boîtes pour lesquelles le système a une solution. Si pour une boîte la méthode ne permet pas de déterminer s'il existe une solution, alors elle sera bissectée. La bissection s'arrêtera toutefois lorsque l'ensemble des intervalles de la boîte auront une largeur inférieure à un seuil (`ALIAS/epsilon` dans l'interface maple). On peut donc négliger des boîtes pour laquelle il existe peut être des solutions du système. Ceci explique pourquoi on obtient seulement une approximation de la variété. On peut cependant avoir une information sur la qualité de l'approximation car on dispose du volume total des boîtes solution dans `ALIAS/VolumeIn` et du volume total des boîtes négligées dans `ALIAS/VolumeNeglected`.

2  Exemple

2.1  Un premier programme

On dispose de 5 équations polynomiales eqi dans les inconnues d3, d4, r2 et on désire déterminer une approximation de la variété définie par eqi £ 0 pour i dans [1,5].

Le programme permettant de calculer cette variété s'écrit:
 
#les equations
eq1:=d3^2-d4^2+r2^2:
eq2:=d4^2*((r2^2+d3^2+1)^2-4*d3^2)*(-d4^2+(r2^2+d3^2))-d3^2*r2^2:
eq3:=-d4*r2^2-d4+d3:
eq4:=(d3-1)^2*(d3^2-d4^2)+d3^2*r2^2:
eq5:=(d3+1)^2*(d3^2-d4^2)+d3^2*r2^2:

#les bornes sur d3,d4,r2

D3:=[0.1,2]:
D4:=[0.1,2]:
R2:=[0.1,2]:

with(ALIAS):
`ALIAS/debug`:=1:
`ALIAS/single_bisection`:=2:
`ALIAS/storage_mode`:=10:
`ALIAS/ND`:=1:
`ALIAS/epsilon`:=0.04:
`ALIAS/ND_file`:="Out":

NUM:=HessianSolve([eq1<=0,eq2<=0,eq3<=0,eq4<=0,eq5<=0],[d3,d4,r2],[D3,D4,R2]);

`ALIAS/VolumeIn`;
`ALIAS/VolumeNeglected`;
On a choisit ici le mode de bissection utilisant la "smear function" (`ALIAS/single_bisection`:=2:), un mode inverse de stockage des boîtes crées par la bissection (`ALIAS/storage_mode`:=10:) et de négliger les boîtes dont la largeur est inférieure à 0.04. Le résultat, c'est-à-dire l'ensemble des valeurs de d3, d4, r2 telles que les polynômes sont négatifs, sera écrit dans le fichier "Out"

En utilisant ce programme on obtient un fichier Out contenant 5009 boîtes pour un volume total de .917 avec un volume total de boîtes négligées de .0878: la qualité de l'approximation est donc raisonnable avec un ratio de 9.57%.

2.2  Filtrage

On peut améliorer la qualité de l'approximation soit en diminuant la précision (mais au prix de la création d'un nombre important de boîtes solution), soit par un effort de filtrage qui va tenter, pour une boîte donnée, de réduire sa taille en excluant des composantes qui ne satisferont pas les contraintes.

On peut penser utiliser ici le filtrage 3B. On effectue une version forte de ce filtrage en rajoutant dans la liste des paramètres ALIAS les lignes:
 
`ALIAS/3B`:=2:
`ALIAS/Full3B`:=1:
`ALIAS/Full3B_Change`:=0.0001:
`ALIAS/Max3B`:=100:
`ALIAS/Delta3B`:=0.0001:
Sans modifier la précision on obtient alors 7152 boîtes solution pour un volume total de 0.922 et un volume négligé de 0.058 pour un ratio de 6.37 %.

Un autre mode de filtrage possible est d'utiliser la consistance 2B. Un tel filtre sur des inégalités peut être directement obtenu par:
 
HullIConsistency([eq1<=0,eq3<=0,eq4<=0,eq5<=0],[d3,d4,r2],"SIMP",0.0001);
qui crée la procédure C++ SIMP.C contenant la procédure de filtrage de nom SIMP. Il suffit alors de rajouter le nom de cette procédure comme dernier argument de HessianSolve pour mettre en oeuvre ce filtrage.

Sans modifier la précision on obtient alors 6692 boîtes solution pour un volume total de 0.920 et un volume négligé de 0.078 pour un ratio de 8.487 %.

On peut bien sûr mettre en oeuvre à la fois le filtrage 2B et 3B en combinant les deux méthodes. Sans modifier la précision on obtient alors 7221 boîtes solution pour un volume total de 0. 9226 et un volume négligé de 0.0585 pour un ratio de 6.34855%.
This document was translated from LATEX by HEVEA.