01 / تمهيدي

المبادئ الأساسية

ابدأ بحدود النظام والافتراضات والوحدات والمجاهيل.

Solve للحل الرمزي، FindRoot لجذر عددي من تخمين أولي، وNDSolve للتكامل التفاضلي وإرجاع قواعد دالة استيفاء. == معادلة و= إسناد، وأسماء الدوال تبدأ بحرف كبير. امسح التعريفات القديمة. الكود يستخدم قيماً عددية بوحدات معلنة، وليس كائنات Quantity؛ لا تخلط نظم الوحدات.

تركيز CA (mol/L)الزمن t (min)CA = 2 exp(−0.2 t)t = 10; CA ≈ 0.271

02 / تطبيقي

مثال محلول

يمزج تياران بكسر كتلي 0.20 و0.50 لإنتاج 100 kg/h عند 0.35. الموازنتان تعطيان 50 kg/h لكل تيار. في مثال دفعي مستقل ثابت الحرارة والحجم، k = 0.20 min⁻¹ وCA0 = 2 mol/L. يحل FindRoot exp(−kt)=0.20، ويحسب NDSolve التركيز حتى 20 min. الحل التحليلي المستقل يعطي t = 8.047189562 min وCA(10) = 0.2706705665 mol/L. تحققت القيم بالحساب المستقل؛ لم يُشغّل Mathematica فعلياً لإعداد المقالة.

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
المعاملالقيمةالوحدة
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 / متقدم

قرارات هندسية

راجع بواقي المعادلات، التدفقات الموجبة، تحويل 0–1 وحفظ الكتلة. جرّب عدة تخمينات للجذور غير الخطية؛ الجذر الواحد لا يثبت التفرد. في معادلات الحرارة والحركية قد يلزم التعامل مع الصلابة والتحجيم وتعديل الدقة. قارن الحل العددي بالتحليلي ووثق الوحدات. المثال تعليمي وليس نموذج سلامة أو تشغيل.

المصادر

  1. Wolfram · Solve ↗
  2. Wolfram · FindRoot ↗
  3. Wolfram · NDSolve ↗
اسأل عن هذه المقالة ↗