Apport nutritionel

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
LB2
Habitué(e)
Messages: 1504
Enregistré le: 05 Nov 2017, 16:32

Re: apport nutritionel

par LB2 » 18 Sep 2019, 21:49

Tu fais du gavage fatal_error là ^^ Tu as mis un zéro en trop, c'est 5% de lipides , pas 50% !

Avec le même code corrigé, on obtient la sortie suivante :
proportionAPrendre =

6.9814e-02
6.2151e-01
2.3338e-01
3.2203e-05
7.5259e-02

dans l'ordre mais, ble, soja, luzerne , colza.

Soit de façon lisible :
- 7% de maïs
- 62.2% de blé
- 23.3% de soja
- Presque rien en luzerne
- 7.5% de colza

A prendre avec des pincettes, il faudrait maintenant faire le calcul dans l'autre sens pour vérifier ce qu'un tel mix apporterait en nutriments.

Mais je persiste à dire :
- il vaut mieux raisonner en gramme, cela va éviter les bêtises et on se rend mieux compte.
- il faut absolument intégrer les prix là dedans, on n'a pas un budget illimité
- il faut également intégrer tous les micro-nutriments etc. comme Jordan l'a décrit précédemment
- un code de programmation mathématique comme celui-ci écrit par fatal_error n'est pas utilisable tous les jours, il faut donc un TABLEUR comme l'a bien dit lycéen95
Modifié en dernier par LB2 le 18 Sep 2019, 21:56, modifié 4 fois.



lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: apport nutritionel

par lyceen95 » 18 Sep 2019, 21:52

jordan2111 a écrit:Maintenant que j'ai à peu prés compris vos calcul le plus compliquer va être de faire varié les proportion pour arrivé au plus prés des valeur .


La branche des maths qui traite de ce sujet s'appelle la Programmation Linéaire. Dans Excel, il y a une fonctionnalité qui fait exactement ce que tu demandes. C'est le SOLVEUR.
- Tu prépare un tableau avec les apports en nutriments de chaque produit, et avec les formules comme on disait plus haut.
- Tu lui donnes les contraintes : la quantité de chaque produit est un nombre positif
- Tu lui donnes l'objectif : il va falloir certainement qu'on en reparle, mais c'est en gros : faire en sorte que l'écart entre la situation atteinte et la situation idéale soit minimale.
Puis tu dis à Excel de proposer les meilleures proportions.
Excel tourne une minute ou 2, et propose une solution.

A ma connaissance, Open-Office n'a pas cet outil SOLVEUR.

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: apport nutritionel

par fatal_error » 19 Sep 2019, 08:43

hi,

A prendre avec des pincettes, il faudrait maintenant faire le calcul dans l'autre sens pour vérifier ce qu'un tel mix apporterait en nutriments.

c'est simplement M*proportionAPrendre

Mais je persiste à dire :
- il vaut mieux raisonner en gramme, cela va éviter les bêtises et on se rend mieux compte.

je pense pas que jordan, lors de son mélange, va compter les graines? :D

- il faut absolument intégrer les prix là dedans, on n'a pas un budget illimité

S'il faut, il peut prendre des fractions de graine... au pire en tronquant les décimales il peut s'en sortir __vraiment__ en comptant les graines (moyennant leur masse respective)

- il faut également intégrer tous les micro-nutriments etc. comme Jordan l'a décrit précédemment

ben à moins qu'ils fassent fusion entre eux, je vois pas ce que tu veux en faire. Un seuil pour les micro nutriments?

- un code de programmation mathématique comme celui-ci écrit par fatal_error n'est pas utilisable tous les jours, il faut donc un TABLEUR comme l'a bien dit lycéen95

Je critique pas l'approche du tableur, et probablement avez vous raison...
De là à payer/installer windows ET excel, à attendre apparemment(?) 2min, je ne sais pas.
Je reste également dubitatif sur la _nécessité_ du tableur pour ce problème
J'insiste pas plus, c'était juste une alternative au tableur

La branche des maths qui traite de ce sujet s'appelle la Programmation Linéaire

sauf que pour l'erreur, si tu prends norme2, c'est plus de la prog linéaire!

le code mis à jour, avec le ratio des nutriments obtenu pour le mix proposé
Code: Tout sélectionner
%      prot, lip, cell       
mais = [19.3,4.3,7.8];
ble = [10.8,1.8,2.2];
soja = [45,1.8,6.3];
luzerne = [18,3.6,21.6];
colza = [19.1,42,8.2];
goal = [20,5,4]';
M = [
    mais;ble;soja;luzerne;colza
]'


function r = g(x)
    r = 1-sum(x);
end
function obj = phi (goal, M, x)
    fx = M*x;
    obj = norm(goal - fx);
endfunction

nvar = size(M, 2)
x0 = zeros(nvar, 1); x0(1) = 1;
lb = zeros(nvar, 1);
ub = ones(nvar, 1);

[proportionAPrendre, erreur] = sqp (x0, @(x) phi(goal, M, x), @g, [], lb, ub)
%proportionAPrendre: premiere ligne: mais, deuxieme ligne, soja, ...
goalObtenu = M*proportionAPrendre
rappelDuGoal = goal
la vie est une fête :)

GaBuZoMeu
Habitué(e)
Messages: 6151
Enregistré le: 05 Mai 2019, 09:07

Re: apport nutritionel

par GaBuZoMeu » 19 Sep 2019, 09:19

lyceen95 a écrit:A ma connaissance, Open-Office n'a pas cet outil SOLVEUR.


Faut se tenir au courant ;) , on utilise maintenant LibreOffice et il y a bien un outil Solveur :

Image

LB2
Habitué(e)
Messages: 1504
Enregistré le: 05 Nov 2017, 16:32

Re: apport nutritionel

par LB2 » 19 Sep 2019, 10:07

@fatal_error : personnellement je trouve que ton code est excellent et que c'est la "bonne méthode" pour résoudre le problème pour un ingénieur comme moi. Je disais juste que pour un non-mathématicien comme Jordan, le tableur est préférable car il pourra le modifier au fur et à mesure et visualiser l'impact d'un changement des paramètres
Pour les micro-nutriments on peut les traiter comme des colonnes supplémentaires, et on se retrouve avec un problème d'optimisation un poil plus complexe (et surtout, sous-déterminé donc sans solution exacte) mais qui colle plus au problème de base.
Le risque de ne pas ajouter les micro-nutriments dans la modélisation, c'est de se retrouver avec un mix qui convient en Protéines/Glucides/Matières grasses mais qui a des carences en fer ou je ne sais quoi :gene:

lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: apport nutritionel

par lyceen95 » 19 Sep 2019, 11:09

Oui, c'est bien le problème.
On a 5 variables pour l'instant ( =la quantité de Maïs, de luzerne, de soja etc et on peut imaginer qu'on aura 5 ou 10 autres ingrédients à disposition) et on a une trentaine de contraintes.
Plus de contraintes que de variables, et donc, sauf miracle, on ne trouvera pas de combinaison qui convienne pour tous les critères.

jordan2111

Re: apport nutritionel

par jordan2111 » 19 Sep 2019, 11:49

Bonjour a tous et merci pour vos message .
Effectivement je vais plus me tourner vers le tableur ,vos ligne de code je n'y comprend pas grand chose :D
J'ai commencer a remplir un tableur avec toute les contrainte et toutes les valeurs des matières premières mais du coup pour le "SOLVEUR" il va falloir que je me documente ( jamais utilisé cet outils ) .
Pour le prix effectivement je n'ai pas un budget illimité mais sachant que les principale matières vont être le mais et le blé il est possible de rajouté pas mal d'autre produits sachant qu'il seront en petite quantité et que les tarif a la tonne sont très avantageux comparer au 20-25 kg de mélange vendu en commerce ( il ne faudrais quand même pas dépasser les 0.50€ / kg de mélange mais ça je le calculerai après ) .
merci

LB2
Habitué(e)
Messages: 1504
Enregistré le: 05 Nov 2017, 16:32

Re: apport nutritionel

par LB2 » 19 Sep 2019, 18:18

- 7% de maïs
- 62.2% de blé
- 23.3% de soja
- Presque rien en luzerne
- 7.5% de colza

ça te parait possible/souhaitable ?

jordan2111

Re: apport nutritionel

par jordan2111 » 20 Sep 2019, 06:48

Bonjour LB2 , la au niveau du tarif ce serait plus que souhaitable sachant que le blé est une des matière première les loin chère mais ça me paraît bizard qu'il y en ai autant et si peu de mais ( qui est avec le blé l'alimentation principale de toute volaille ) .
Comment a tu obtenir ces resultats?
Merci

lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: apport nutritionel

par lyceen95 » 20 Sep 2019, 08:55

J'ai aussi fait des tâtonnements de mon côté, avec les données que tu as partagées, et j'arrive à un résultat similaire à celui de LB2.
On met par exemple 20% de chacun des 5 ingrédients, on constate qu'on a trop de MG, donc on diminue la proportion de Colza, qui apporte beaucoup de MG, et ainsi de suite ; en tâtonnant, on arrive aux proportions données par LB2.
Mais ici on cherche à équilibrer uniquement MG / Protéines / Cellulose. Probablement, ces proportions créent des lacunes en Vitamine A ou Calcium ou je ne sais quoi.
Il faudrait avoir la matrice complète (apport de chaque ingrédient sur chaque besoin), et les besoins des cailles sur tous les critères (pas uniquement MG/Protéines/Celulose) pour améliorer ces résultats.

LB2
Habitué(e)
Messages: 1504
Enregistré le: 05 Nov 2017, 16:32

Re: apport nutritionel

par LB2 » 20 Sep 2019, 09:42

jordan2111 a écrit:Bonjour LB2 , la au niveau du tarif ce serait plus que souhaitable sachant que le blé est une des matière première les loin chère mais ça me paraît bizard qu'il y en ai autant et si peu de mais ( qui est avec le blé l'alimentation principale de toute volaille ) .
Comment a tu obtenir ces resultats?
Merci

C'est le code de fatal error qui résout le système d'équations.
Aucune idée de la raison pour laquelle il y a si peu de maïs : tout ce qu'on peut dire c'est que ce mix est celui qui se rapproche le plus des données que tu as fournies
Pour le reste, je suis d'accord avec lyceen95 : Il faudrait avoir la matrice complète (apport de chaque ingrédient sur chaque besoin), et les besoins des cailles sur tous les critères (pas uniquement MG/Protéines/Celulose) pour améliorer ces résultats

GaBuZoMeu
Habitué(e)
Messages: 6151
Enregistré le: 05 Mai 2019, 09:07

Re: apport nutritionel

par GaBuZoMeu » 20 Sep 2019, 10:15

En faisant tourner le solveur de LibreOffice, voila ce que ça donne :

Image

L'objectif du solveur est de minimiser la case I11, qui est la somme des cases F11 à H11. Les variables (les proportions) sont E4 à 7, E8 est 1 moins la somme des E4 à 7. Les contraintes sont que les variables sont >=0 et <=1, et aussi que E8 est >=0.

F11 est le carré de (F9-B2 divisé par B2) ; F9 est la somme de F4 à F8. Idem pour G et H
F4 est B4 fois E4. Idem en remplaçant B,F par C,G et D,H, et en remplaçant 4 par 5,6,7,8.

Je suis parti avec une situation initiale à 30% blé, 30% soja, 40% maïs
Les proportions trouvées par le solveur, en gros :
8% colza, 63% blé, 23% soja, 6% maïs

GaBuZoMeu
Habitué(e)
Messages: 6151
Enregistré le: 05 Mai 2019, 09:07

Re: apport nutritionel

par GaBuZoMeu » 20 Sep 2019, 20:53

Une résolution graphique utilisant les coordonnées barycentriques, avec seulement trois ingrédients :

Image

jordan2111

Re: apport nutritionel

par jordan2111 » 21 Sep 2019, 09:35

Salut a tous , tout d'abord merci pour vos messages et le temps que vous passer sur mon problème .
GaBuZoMeu avec quoi réalise-tu ce graphique ?
J'ai essayer de faire un tableur a peu près correcte et d'utiliser l'outils solveur , le soucie c'est que je ne peut pas mettre plusieur cellule cible ( pour les résultat en gramme de chaque valeur nutritive ) est-ce normal et sinon comment je peut faire pour utiliser le solveur sur une cellule ( exemple : quantité final de protéine ) et sur un autre ( exemple : quantité finale de cellulose ) sans que ma première cellule ne soit modifier ?
merci

lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: apport nutritionel

par lyceen95 » 21 Sep 2019, 09:56

Le principe du solveur, c'est qu'il y a une seule cellule cible.
Le scénario que tu envisages n'est pas possible non plus.
Mais ce que tu peux faire c'est ajouter une série de cellules :
- Ecart entre le résultat obtenu en Protéines et le résultat souhaité. (écart en Valeur absolue, ce sera même plus simple pour la suite)
Et idem pour chaque ingrédient.
- Puis tu ajoutes une dernière cellule qui donne la somme de ces écarts. (Ecart-Total). Ou la somme des carrés des écarts, c'est classique, mais ici, il y a peu d'intérêt.
Et c'est cette cellule-ci pour laquelle tu dis : le contenu de cette cellule doit être le plus petit possible.

En faisant comme ça, ça va donner des résultats 'corrects' sur les besoins les plus importants (Protéines, MG, cellulose...), mais sur les besoins autres, comme les montants sont tout petits, tu risques d'avoir des résultats pas terribles.

Si nécessaire, il faudra donc mettre des coefficients pour les petits besoins.
Du coup , ça peut donner un truc comme ça : Ecart-Total = EcartProteine + EcartMG + .... ... + 20 *EcartVitamineA + 10*EcartCalcium

lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: apport nutritionel

par lyceen95 » 21 Sep 2019, 09:59

Et ce que tu peux aussi faire, c'est ajouter d'autres contraintes :
EcartProtéine < 0.5
EcartMG < 0.5
EcartCalcium <0.05
Le solveur cherchera une solution qui donne un nombre le plus petit possible dans la cellule choisie, et en respectant ces contraintes.
Mais si tu mets des contraintes trop strictes, peut-être qu'il n'y aura aucune combinaison des ingrédients de base qui convienne.

GaBuZoMeu
Habitué(e)
Messages: 6151
Enregistré le: 05 Mai 2019, 09:07

Re: apport nutritionel

par GaBuZoMeu » 21 Sep 2019, 18:39

Je signale que j'ai indiqué les formules que contiennent les cellules de ma feuille. Il suffisait (mais il était nécessaire) de lire mon message. La cellule cible contient la somme des carrés des écarts relatifs : (valeur obtenue -valeur attendue)/valeur attendue.

Quant au petit dessin, je l'ai réalisé avec GeoGebra, logiciel de géométrie dynamique bien connu dans le secondaire. Il a une commande "Barycentre", et on peut récupérer les coordonnées barycentriques grâce à des quotients d'aires de triangles. Ça marche bien quand on a trois ingrédients en jeu, mais pas plus.

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 37 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite