Eenheid 6 / 11

Chemische data-analyse en Python: panda's, stoichiometrie en kalibratie

Winst:

  • Mogelijkheid om numerieke resultaten te baseren op uitgevoerde Python-code in plaats van verbaal gissen naar het taalmodel
  • Mogelijkheid om de stoichiometrie-, kalibratie- en gegevensopschoningscode naar kunstmatige intelligentie te schrijven en deze te testen met voorbeelden met bekende antwoorden
  • Mogelijkheid om fouten in de data-analyse te voorkomen door altijd eenheden te specificeren en hun volgorde te controleren

De chemie zit vol met cijfers: wegingen, volumes, absorptiewaarden, opbrengsten, concentraties. Het handmatig verwerken van deze gegevens is traag en foutgevoelig. AI levert hier twee belangrijke diensten: (1) schrijft Python-code die de gegevens verwerkt, (2) voert die code uit (in een omgeving die de code kan uitvoeren) en geeft een deterministisch resultaat. Het cruciale principe is dit: laat de berekening over aan de uitvoer van de uitgevoerde code, niet aan de "verbale voorspelling" van het taalmodel. Taalmodel "Wat is 142 × 0,05?" kan de vraag soms verkeerd beantwoorden; maar de Python-regel die hij schrijft, berekent altijd correct. In deze unit leren we chemische data-analyse met AI met deze filosofie.

Waarom is code beter dan verbaal raden?

Een taalmodel rekent af door "de mogelijke uitkomst te voorspellen"; het kan dus fout gaan bij grote getallen of meerstapsrekening. Terwijl in Python de uitdrukking 142 * 0,05 deterministisch is: deze retourneert altijd 7,1. Strategie dus: laat de AI de berekening niet uitvoeren, print de CODE van de berekening en voer de code uit. Je gebruikt dus de creativiteit van de AI (het bouwen van de code) en schakelt de onbetrouwbare kant uit (hoofdrekenen).

Tip: Als je een numeriek resultaat van een AI krijgt, zeg dan 'geef dit weer met een Python-regel'. De code zelf verifieert het account en stelt u in staat het uit te voeren en te bevestigen. Als u geen code ziet, vertrouw het nummer dan niet.

Typische data-analysetaken in de chemie

  • Stoichiometrie: mol, massa, beperkend reagens, theoretische opbrengst, berekening van het percentage opbrengst.
  • Concentratie: molariteit, verdunning (M1V1 = M2V2), ppm-omzettingen.
  • Kalibratie: Een kalibratielijn tekenen met de wet van Beer-Lambert (absorptie ∝ concentratie) en het onbekende berekenen.
  • Gegevensopschoning: meettabellen met panda's lezen, uitschieters markeren, gemiddelde/standaardafwijking.
  • Visualisatie: tekening kalibratiecurve, kinetiekgrafiek, titratiecurve.

Stap voor stap: Veilige data-analyse met AI

  1. Gegevens definiëren: Geef duidelijk kolommen, eenheden en voorbeeldrijen op. Als er geen eenheid is, doet de AI aannames.
  2. Vraag om code, niet om resultaten: zeg "Schrijf panda's/NumPy-code die dit berekent".
  3. Voer de code uit: Voer deze zelf uit of in een omgeving waarin code kan worden uitgevoerd.
  4. Test met eenvoudig geval: Test de code met een klein voorbeeld waarvan u het antwoord weet.
  5. Eenheids- en ordercontrole: Zijn de eenheid en de omvang van het resultaat fysiek redelijk?
  6. Document: Voeg de code en uitvoer toe aan het experimentnotitieboekje (eenheid 8).

Vier kopieerbare sjablonen

1) Stoichiometrie en percentage opbrengst:

Reactie: salicylzuur (MA 138.12) + azijnzuuranhydride -> aspirine (MA 180.16). Gegevens: 2,00 g salicylzuur werd gebruikt, azijnzuuranhydride was in overmaat. Verkregen aspirine: 2,15 g. Taak: Schrijf Python-code die de theoretische opbrengst en het percentage opbrengst berekent. Definieer molecuulgewichten als variabelen, druk het resultaat in eenheden af. Bereken niet in het hoofd; geef gewoon uitvoerbare code.

2) Bier-Lambert-kalibratie:

Kalibratiegegevens (concentratie mol/L -> absorptie): 0,00->0,02, 0,02->0,21, 0,04->0,40, 0,06->0,62, 0,08->0,79. Onbekende monsterabsorptie: 0,50. Taak: Voer lineaire kalibratie uit met numpy.polyfit, slope/intercept en Bereken R^2, vind de onbekende concentratie. Teken de data + fit-lijn met matplotlib.

3) Maattabel met panda's:

Ik heb een CSV: kolommen = monster, weeg_g, volume_mL, absorptie. Taak: lees met panda's, bereken de concentratie (g/L) voor elk monster, markeer rijen met absorptie < 0 als onjuist, geef code om het gemiddelde en de standaardafwijking van de groepen af ​​te drukken. Specificeer de eenheden met een commentaarregel.

4) Verificatie van de verwateringsrekening:

Ik wil 100 ml 0,05 M-oplossing bereiden uit een 0,5 M-voorraadoplossing. Taak: Schrijf de Python-regel die het vereiste voorraadvolume berekent met M1V1=M2V2. Druk het resultaat af in ml en verifieer als opmerking dat er voor een logische controle een tienvoudige verdunning wordt verwacht.

Zwakke prompt/sterke prompt

Zwak:

Hoeveel aspirine komt uit 2 gram salicylzuur?

De AI geeft vanuit het hoofd een getal; Als het de molecuulgewichten verkeerd onthoudt, zal het resultaat vervormd zijn en zal de manier waarop het werd berekend niet zichtbaar zijn.

Sterk:

Stel dat salicylzuur MA = 138,12, aspirine MA = 180,16, massa = 2,00 g, opbrengst 100%. Taak: Schrijf Python-code die de theoretische massa van aspirine berekent; becommentarieer elke stap (mol -> mol -> massa), druk het resultaat af in g.

Verschil: gegeven molecuulgewichten, gevraagde code, stappen becommentarieerd, gespecificeerde eenheid. Het resultaat is zowel accuraat als controleerbaar.

Verbale voorspelling etc. uitgevoerde code

Grootte

Taalmodel verbale voorspelling

Python-run

Rekenkundige nauwkeurigheid

Variabel, er kan een fout optreden

Deterministisch, zeker

Controleerbaarheid

Miskraam (het is onduidelijk hoe het kwam)

Hoog (code zichtbaar)

herhaalbaarheid

laag

hoog

Eenheid volgen

zwak

Kan in code open gehouden worden

Correct gebruik

Idee, bouwstructuur

Numeriek eindresultaat

mini-gevallen

Geval 1 — Verbale rekenfout. Een leerling vraagt ​​aan AI “0,0145 mol × 180,16 g/mol?” vroeg hij; “2,72 g”, zei de AI. Eigenlijk is het 2,61 gram. Toen de student zei "laat dit zien in Python", schreef YZ 0,0145 * 180,16 en het kwam uit op 2.612; Het eerste verbale antwoord was onjuist. Les: geef de voorkeur aan code, zelfs voor zeer eenvoudige vermenigvuldiging.

Geval 2 — R²-controlekalibratie. Eén gebruiker liet een Beer-Lambert-kalibratie uitvoeren; Het blijkt dat R² = 0,981. De AI zei ‘lineair, betrouwbaar’ maar het punt bij de hoogste concentratie lag onder de lijn (verzadiging). Toen de gebruiker de grafiek zag, verplaatste deze het hoogste punt uit het lineaire bereik, R² nam toe tot 0,999. Les: R² alleen is niet genoeg; zie resten/plot.

Geval 3 — Eenheidsverwarring. Bij één analyse was het onduidelijk of de concentratie mg/l of g/l was; De AI ging uit van g/L en de resultaten waren 1000 keer fout. Het probleem is opgelost toen de gebruiker expliciet de kolomeenheid opgaf. Les: verander de eenheid altijd te kort, ervan uitgaande dat AI duur is.

Veel voorkomende fouten

  • Vertrouwend op mondeling nummer. Vraag altijd code aan en voer deze uit in plaats van hoofdrekenen.
  • De eenheid wordt niet gespecificeerd. Het mengen van mg/l met g/l, ml met l veroorzaakt een duizendvoudige fout.
  • De code niet testen. Toepassen op big data zonder te testen met een klein voorbeeld waarvan het antwoord bekend is.
  • Rekening houdend met R² als het enige criterium. Vertrouwen op de niet-lineariteitspunten zonder ze grafisch te zien.
  • Sla het testerreagens over. Berekening van de theoretische opbrengst zonder het beperkende reagens in stoichiometrie te bepalen.
  • Belangrijke stap uitstorting. Het resultaat rapporteren in 8 cijfers wanneer de meting uit 3 significante cijfers bestaat.
Let op: Zelfs de code die de AI schrijft kan defect zijn (verkeerde kolomnaam, verkeerde formule). Het uitvoeren van de code maakt het resultaat deterministisch, maar u moet met een bekend voorbeeld bevestigen dat de code het juiste berekent.

Samengevat

  • Laat de numerieke resultaten over aan de uitgevoerde Python-code, niet aan de verbale inschatting van het taalmodel.
  • AI schrijft snel code voor stoichiometrie, kalibratie, gegevensopschoning en visualisatie bij chemische gegevensanalyse.
  • Zet altijd units aan; Verwarring van eenheden is de duurste fout.
  • Bekijk de residuen en grafiek naast R² in de kalibratie.
  • Test de code met een eenvoudig voorbeeld met een bekend antwoord; Mens verifieert de juistheid van de code.

Applicatie taak

Zorg voor een kalibratie- of stoichiometriegegevensset (zo niet, gebruik dan de Beer-Lambert-gegevens hierboven). Vraag de AI naar de Python-code die de analyse doet (de code, niet het resultaat). Voer de code uit; Test het vervolgens met een kleine steekproef van bekende antwoorden. Vraag de AI mondeling om dezelfde berekening en vergelijk de twee resultaten: is er een verschil? Interpreteer de grafiek van R² en het residu in de kalibratie. Plaats de code, de uitvoer en het korte commentaar in een document.

controlelijst

  • [ ] Ik haal de numerieke resultaten uit de code, niet uit de verbale gok.
  • [ ] Ik geef duidelijk de eenheid van elke gegevenskolom aan.
  • [ ] Ik test de code met een klein voorbeeld waarvan het antwoord bekend is.
  • [ ] Ik voer residu-/grafiekanalyse uit naast R² tijdens de kalibratie.
  • [ ] Ik bepaal het beperkende reagens in de stoichiometrie.
  • [ ] Ik rapporteer de resultaten met het juiste significante cijfer.