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!!!!!!!!!