Matlab: Polynom Ableiten und Integrieren

tJ

Lieutenant
Registriert
Juli 2008
Beiträge
820
Hallo Zusammen!

Habe folgendes Polynom, welches ich gerne Ableiten und Integrieren würde:

y = - 3.8e-33*x^{10} + 1e-28*x^{9} - 1.2e-24*x^{8} + 7.7e-21*x^{7} - 3e-17*x^{6} +
7e-14*x^{5} - 1e-10*x^{4} + 8.4e-08*x^{3} - 3.6e-05*x^{2} + 0.0068*x - 0.3

Leider hab ich keine ahnung wie ich das bei matlab eingebe, hab auch nichts im inet gefunden dazu, bzw. nicht verstanden.

könnte mir bitte jmd weiterhelfen?:)

Vielen Dank!
 
Wenn es dir um das Ergebnis und nicht um Matlab geht, kannst du das eigentlich genau so auch mal bei Wolfram Alpha eingeben. Das gibt dir dann alles mögliche zu dem Term aus (kann man aber auch spezifizieren). Ich hab bisher im Studium immer Wolfram Alpha benutzt, und bin eigentlich fast nie enttäuscht worden. Sollte es dir aber darum gehen, das mit Matlab zu lösen, kann ich dir leider nicht weiterhelfen.
 
Wir kreieren uns zunächst ein function-handle mit
Code:
f=@(x) - 3.8e-33*x^10 + 1e-28*x^9 - 1.2e-24*x^8 + 7.7e-21*x^7 - 3e-17*x^6 + 7e-14*x^5 - 1e-10*x^4 + 8.4e-08*x^3 - 3.6e-05*x^2 + 0.0068*x - 0.3
Damit ist f nun eine Funktion von x, mit f(0.1) kann man nun die Funktion an der Stelle x=0.1 auswerten.
Zum Ableiten brauchen wir dann noch eine symbolische Variable, die legen wir mit
Code:
syms x
an (hier brauchst du spätestens die symbolic-toolbox!)
Nun ist alles vorbereitet und das Polynom kann man einfach mit
Code:
diff(f,x)
ableiten oder mit
Code:
int(f,x)
integrieren.

Zum Vergleich meine Lösungen:
Code:
diff(f,x)
 
ans =
 
- (27768531109287155*x^9)/730750818665451459101842416358141509827966271488 + (9*x^8)/10000000000000000000000000000 - (3266710722441009*x^7)/340282366920938463463374607431768211456 + (17911347243201741*x^6)/332306998946228968225951765070086144 - (14603334914629203*x^5)/81129638414606681695789005144064 + (3466232109999065*x^4)/9903520314283042199192993792 - x^3/2500000000 + (19040581658930409*x^2)/75557863725914323419136 - (5312662293228351*x)/73786976294838206464 + 17/2500

und

Code:
int(f,x)
 
ans =
 
- (504882383805221*x^11)/1461501637330902918203684832716283019655932542976 + x^10/100000000000000000000000000000 - (362967858049001*x^9)/2722258935367507707706996859454145691648 + (2558763891885963*x^8)/2658455991569831745807614120560689152 - (4867778304876401*x^7)/1135814937804493543741046072016896 + (693246421999813*x^6)/59421121885698253195157962752 - x^5/50000000000 + (6346860552976803*x^4)/302231454903657293676544 - (1770887431076117*x^3)/147573952589676412928 + (17*x^2)/5000 - (3*x)/10
 
Hi,

die E-Funktion lautet in Matlab exp()

Ansonsten bin ich auch kein Profi in Matlab, weil ich mich mit der smbolic Toolbox nicht wirklich auskenne aber deine Funktion kannst du so schreiben:

f = @(x) - 3.8*exp(-33...

wichtig: Mal-Zeichen musst du in Matlab schreiben, auch wenn du sie auf papier weglässt.

Ableiten tust du dann mit dem Befehl diff(f(x),x,1) für die erste Ableitung

Integrieren sollte integrate sein habs noch nie benutzt ist aber eig immer das englische Wort einfach im hauotfesnter help integrate oder so eingeben dann steht wie es benutzt wird
 
Super vielen Dank Nuuub!
wie genau kann ich die Int/Abl. Formel plotten lassen?^^
 
Alternativ kannst du dir auch GeoGebra runterladen und es auch grafisch schön lösen lassen.

Die Ableitung sollte dich allerdings vor keine Probleme stellen... oder ?
 
Wie ich mir die Ableitungsfunktion als Graphen ausgeben lassen kann
 
Du kannst sie dir in nem selbst festgelegten Intervall anzeigen lassen. Als erstes musst du aus der Ableitung wieder eine Funktion machen:

Code:
fs = @(x) - (27768531109287155*x.^9)/730750818665451459101842416358141509827966271488 + (9*x.^8)/10000000000000000000000000000 - (3266710722441009*x.^7)/340282366920938463463374607431768211456 + (17911347243201741*x.^6)/332306998946228968225951765070086144 - (14603334914629203*x.^5)/81129638414606681695789005144064 + (3466232109999065*x.^4)/9903520314283042199192993792 - x.^3/2500000000 + (19040581658930409*x.^2)/75557863725914323419136 - (5312662293228351*x)/73786976294838206464 + 17/2500

Dann legen wir das Intervall fest:

Code:
range = -1:0.01:1

hier also von -1 bis 1 in 0.01er Schritten und plotten das ganze mit

Code:
figure(1), plot(range, fs(range))

Wichtig sind die "x.^k", da range als Vektor und nicht selbst elementweise übergeben wird.

Sollte dann sowas wie in der angehängten Grafik ergeben.
untitled.jpg
 
Zuletzt bearbeitet:
Ohh man, echt klasse beschreibung! vielen dank für die Mühe Nuuub!
 
Zurück
Oben