|
|
Nullstellen von mehreren Polynomen gleichzeitig berechnen |
|
siragaz |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 26.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 12:05
Titel: Nullstellen von mehreren Polynomen gleichzeitig berechnen
|
 |
|
 |
|
Hallo zusammen
Ich habe folgendes Problem:
Ich möchte von mehreren Polynomen die Nullstellen gleichzeitig berechnen. Die Polynome unterscheiden sich nur geringfügig voneinander.
Wenn ich den Code ausführe, dann bekomme ich nur ein Resultat, statt 240. Hat vielleicht jemand ein Idee?
Hier mein Code:
% Nullstellen finden
pKw = 14;
Kw = 10^-pKw; % Water equilibrium constant
pKa = -6.2; % pKs von HCl
Ka = 10^-pKa;
HCl_start = 0.1;
HCl_int = 0.1;
HCl_end = 24;
HCl = (HCl_start: HCl_int: HCl_end);
HA0 = HCl/20000; % Anfangs-Konzentration der Säure/Systemvolumen
n = numel(HCl);
a1 = 1; % H^3
b1 = zeros(1, n);
b1(1:n) = a1;
a2 = Ka; % H^2
b2 = zeros(1, n);
b2(1:n) = a2;
a3 = -(Kw + Ka * HA0); % H^1
b3 = zeros(1, n);
b3(1:n) = a3;
a4 = -Ka * Kw; % H^0
b4 = zeros(1, n);
b4(1:n) = a4;
P = [b1 b2 b3 b4]; % Kubische Gleichung
N = max(roots(P)); % Nullstelle finden, welche maximal ist. (Die anderen machen chemisch keinen Sinn.)
N = -log10(N); % Berechnung des pH's
disp(N);
Gruss
Siragaz
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 12:17
Titel:
|
 |
so wie der code aussiht berechnetst du die nullstellen eines polynomes vom grad 960
bitte benutze in Zukunft die code umgebeung wenn du code postest
grüße winkow
_________________
richtig Fragen
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 12:18
Titel:
|
 |
Hallo,
woher soll MATLAB denn wissen, dass es sich um n Polynome des Grads 3 handelt und nicht um eines des Grads n+2?
Verwende entweder eine Schleife über die b4 oder löse die Gleichung symbolisch und setze dann die verschiedenen b4 ein.
Grüße,
Harald
|
|
|
siragaz |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 26.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 13:08
Titel:
|
 |
Sorry, das mit dem Code hab ich jetzt auch gerafft.
@Winkow: Ja, ich habe ein Polynom vom Grad 960. Das will ich natürlich nicht.
@Harald: Eine Schleife habe ich eingefügt. Scheint aber nicht zu klappen. Bekomme die Meldung:
In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in Nullstellen (line 30)
P(i) = [a1 a2 a3(i) a4]; % Kubische Gleichung
Was mache ich falsch?
Ich habe folgenden Code angewendet:
Cheers
Siragaz
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 13:31
Titel:
|
 |
du versuchst einem einzelnen element der matrix p mehrere elemente zuzuweisen. eine möglichkeit wären cell arrays eine einfachere wäre einfach das p auszulassen und gleich in die schleife zu packen.
_________________
richtig Fragen
|
|
|
siragaz |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 26.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 14:30
Titel:
|
 |
Hat super geklappt.
Vielen Dank und Cheers
Siragaz
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|