Résolution d'un système de n équations avec n inconnues
je commence tous d'abord par citer les données de mon problème
soit un vecteur sous forme d'un système d'équations à n inconnu, ( je prends 3 inconnus à titre d'exemple a,b et c)
Code:
1 2 3 4
| a.x1+b.y1+c.z1-u-1
a.x2+b.y2+c.z2-u_2
...
a.xn+b.yn+c.zn-u_n |
ps: ce vecteur est le résultat du produit d'une matrice et du vecteur (a,b,bc)
l'objectif est de résoudre le système de tel sorte que la somme de tous les éléments du
vecteur soit défini dans une intervalle .
dans ce cas je dois initialiser les valeurs a,b et c par exemple 0<(a,b,c)<10000 et
je mets deux conditions d'arrêts (la somme < K ou le nombre d'itération est défini)
ma question pour faire ce calcul avec la boucle for est ce que le script choisi lui meme des valeurs
de a,b et c appartiennent à l'intervalle défini et fait son calcul jusqu'à il trouve ces 3 valeurs ou
il faut à chaque fois fixer 2 et varier 1? s'il ya une méthode mathématique ou une autre méthode dites moi s'il vous plais
Résolution d'un système de n équations avec n inconnues
Bonjour, :D
Apparemment, tu cherches à déterminer la composition d'une source radioactive à partir du spectre énergétique (gamma ?) de son rayonnement, et il demeure actuellement deux inconnues, les proportions en américium 241 et en yttrium 88 ?
Ton procédé consiste bien à rechercher le triplet (a, b, c) conduisant au meilleur ajustement des raies calculées à celles de la source étudiée ? N'interviendrait-il pas le calcul d'un différence:
vk = a.xk + b.yk + c.zk - uk
se prêtant à l'intervention d'une méthode des moindres carrés ?
Tu pourrais en effet considérer la somme des carrés des écarts:
S(a, b, c) = Sk=1N(vk)2 = Sk=1N(a.xk + b.yk + c.zk - uk)2
Tes coefficient positifs (a, b, c) sont certainement majorés par des bornes connues:
a < Amax ; b < Bmax ; c < Cmax
dont on peut retenir la plus faible: Vlim = Min(Amax, Bmax, Cmax) ;
et l'on peut de plus partir de valeurs "raisonnables" que tu es le mieux placé pour choisir, par exemple:
a0 = 0.5*Amax ; b0 = 0.5*Bmax ; c0 = 0.5*Cmax ;
Tu pourrais alors entreprendre de chercher les 6 valeurs proches envisageables correspondant à un petit écart e1 = Vlim/10 imposé à l'un des trois coefficients (a, b, c):
D1 = S(a + e1, b, c) ; D2 = S(a - e1, b, c) ;
D3 = S(a, b + e1, c) ; D4 = S(a, b - e1, c) ;
D5 = S(a, b, c + e1) ; D6 = S(a, b, c - e1) ;
Voir laquelle d'entre elles est la plus faible (et bien sûr inférieure à D0 = S(a, b, c) , reprendre les mêmes calcul pour les nouvelles valeurs (a1, b1, c1) et itérer jusqu'à ce qu'elles soient toutes supérieures à la valeur de départ (D0 = S(ai, bi, ci) .
Diminuer l'incrément en prenant e2 = Vlim/100 , avant de reprendre la recherche précédente; poursuivre de proche en proche avec des incréments de plus en plus faibles (ej = Vlim/10j) qui permettront de parvenir rapidement à la limite de précision souhaitée.
Des détails m'échappent sans doute, mais j'espère que tu as saisi l'idée.
PS: Je suis parti sur la détermination de trois coefficients inconnus (a, b, c), mais peut-être n'y en a-t-il que deux, relatifs à 241Am et 88Y ?
Citation:
Envoyé par
elmhmdi
... soit un vecteur sous forme d'un système d'équations à n inconnues, (
je prends 3 inconnues à titre d'exemple a, b et c)
Code:
1 2 3 4
| a.x1+b.y1+c.z1-u-1
a.x2+b.y2+c.z2-u_2
...
a.xn+b.yn+c.zn-u_n |
Citation:
Envoyé par
elmhmdi
... c'est une méthode que j'utilise pour identifier un signal inconnu à partir d'une base de donnée , que j'ai testé avec excel, elle marche bien mais il faut que je choisisse moi-même ces inconnues (a,b,c), chaque variable correspond à un élément, dans cet exemple
j'ai trouvé toutes les valeurs inconnues , j'ai éliminé les valeurs négligeables il m'en reste que deux , qui correspondent au signal inconnu (orange) ...
je veux une méthode me permet de trouver ces inconnues automatiquement
[... / ...
les coefficients sont positifs ...
Il sera facile de rectifier les calculs, quel que soit le nombre retenu.