01 / Introduction

Principes fondamentaux

Écrivez d’abord frontière, hypothèses, unités et inconnues.

Solve cherche des solutions symboliques ; FindRoot une racine numérique depuis une estimation ; NDSolve intègre les équations et renvoie des règles d’interpolation. == exprime une équation, = une affectation ; les fonctions commencent par une majuscule.

Effacez les anciennes définitions.

Ici les nombres ont des unités explicites, sans objets Quantity : ne mélangez pas les systèmes.

Concentration de CA (mol/L)Temps t (min)CA = 2 exp(−0.2 t)t = 10; CA ≈ 0.271

02 / Application

Exemple résolu

Deux débits à fractions massiques 0.20 et 0.50 donnent 100 kg/h à 0.35.

Les bilans total et composant donnent 50 kg/h chacun.

Dans un exemple discontinu distinct, isotherme et à volume constant, k = 0.20 min⁻¹, CA0 = 2 mol/L.

FindRoot résout exp(−kt)=0.20 et NDSolve calcule jusqu’à 20 min.

Le calcul analytique indépendant donne t = 8.047189562 min et CA(10) = 0.2706705665 mol/L.

Ces valeurs ont été vérifiées indépendamment ; Mathematica n’a pas été exécuté pour cet article.

Mixer: F1 + F2 = Fout; F1 x1 + F2 x2 = Fout xout
Batch: dCA/dt = −k CA; CA(t) = CA0 exp(−kt)
CA(10 min) = 0.2706705665 mol/L; t80% = 8.047189562 min
ParamètreValeurUnité
f150kg/h
f250kg/h
t (X = 0.80)8.047189562min
CA (t = 10 min)0.2706705665mol/L
ClearAll["Global`*"];
(* Flows: kg/h; mass fractions dimensionless *)
Solve[{f1 + f2 == 100, 0.20 f1 + 0.50 f2 == 35}, {f1, f2}]
(* k: 1/min; t: min; concentration: mol/L *)
k = 0.20; ca0 = 2.0;
FindRoot[Exp[-k t] == 0.20, {t, 8}]
sol = NDSolve[{ca'[t] == -k ca[t], ca[0] == ca0}, ca, {t, 0, 20}];
ca[10] /. First[sol]
Plot[Evaluate[ca[t] /. First[sol]], {t, 0, 20},
 AxesLabel -> {"t (min)", "CA (mol/L)"}, PlotRange -> All]

03 / Avancé

Décisions d’ingénierie

Vérifiez résidus, débits positifs, conversion 0–1 et conservation de masse.

Essayez plusieurs estimations pour les racines non linéaires : un résultat ne prouve pas l’unicité.

Les ODE thermiques et cinétiques peuvent être raides ; contrôlez échelles et tolérances.

Comparez à l’exponentielle analytique et documentez unités et paramètres.

Ce code pédagogique n’est pas un modèle de sécurité ou d’exploitation.

Sources

  1. Wolfram · Solve ↗
  2. Wolfram · FindRoot ↗
  3. Wolfram · NDSolve ↗
Interroger sur cet article ↗