funktionsberechnung 3. ordnung???



  • guten moin,

    habe nicht viel ahnung vom programmieren, deshalb folgendes problem:
    ich nehme über einen ad-wandler (µC, 16Bit) einen wert x auf. (das klappt) nun
    möchte ich damit ein wenig rechnen.
    und zwar:

    der wert von x soll in der formel (siehe unten) eingesetzt werden.
    diese funktion soll in der endlosscheleife solange mit sich selbst
    addiert werden, bis der wert von y > 1 ist. wie kann ich das am besten
    realisieren? besonders die potenzen von x machen mir zu schaffen.
    meine paar code-fragmente sehen so aus:
    x ist global definiert. in x steht immer der aktuell gemessene wert.

    main()
    {
    double y=0;
    for(;;)
      {
      y += 3E-09*(x*x*x) - 2E-03*(x*x) + 4E-04*(x) + 1E-07;
      if (y>1){...}
      }
    }
    

    kann das so funktionieren?
    brauch ich ne neue header-datei?
    gibt es evtl. ne stilistisch schönere variante? 🙂

    besten dank schon einmal im voraus



  • y += 3E-09*(x*x*x) - 2E-03*(x*x) + 4E-04*(x) + 1E-07;
    schöner:
    y += 3e-09*x*x*x - 2e-03*x*x + 4e-04*x + 1E-07;
    notzlose klammern verwirren mich nur.
    dann gibts da noch ne funktion namens pow.
    y += 3e-09*pow(x,3) - 2e-03*pow(x,2) + 4e-04*x + 1E-07;
    und natürlich das horner-schema.
    y += ((( 3e-09 )*x+ -2e-03 )*x+ 4e-04 )*x+ 1E-07;
    man schreint zwischen zwei koeffizienten immer )*x+ und macht ganz links genug klammern auf, daß es passt. das ist übrigens die schnesste version.



  • Jau klasse!
    Das sind doch mal gute Vorschläge. 🙂
    Besten Dank auch!
    Aber, wenn noch wer eine gute Idee hat... immer her damit!!!



  • sinnvoller wäre

    x*x*x aus x*x und x berechnen - dann sparst du dir ein paar Multiplikationen

    KURZ: Hornerschema!!!!!!!!!



  • Vertexwahn schrieb:

    KURZ: Hornerschema!!!!!!!!!

    👍


Anmelden zum Antworten