Forum: Offtopic Matlabe/Octave: solve() -> Werte in Formel einsetzen lassen


von Kaj G. (Firma: RUB) (bloody)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

vielleicht ist hier ja jemand, der relativ Fit in Matlab/Octave ist. :)

Mittels der solve()-Funktion kann man Gleichungen/Gleichungssysteme 
lösen lassen. "Lösen" bedeutet in diesem zusammenhang, dass die 
Gleichung nach der gesuchten Variablen umgestellt wird.

Wie bekomme ich Matlab/Octave jetzt aber dazu, in die "gelöste 
Gleichung" Werte einzusetzen, und das ganze auszurechnen? Denn so 
bekomme ich erstmal nur die "gelöste Gleichung" als Ausgabe im 
Command-Window und muss das ganze dann nochmal abtippen bzw. copy&paste
1
%
2
% R1 = 67.32 Ohm
3
% R2 = 32.68 Ohm
4
%
5
6
% Head start - Init
7
clear
8
home
9
close all
10
11
% this load command is needed for octave
12
% if you use matlab you don't need that
13
pkg load symbolic
14
% Head end
15
16
% Prog start
17
syms R1 Ir Ip U
18
SR1 = solve([R1 * (( U / Ir) - R1) * Ip * Ir] == U^2, [R1])
19
20
U = 220; % voltage
21
Ip = 10; % current in parallel connection
22
Ir = 2.2; % current in series connection
23
24
% Matlab solution
25
R1 =  (U * (Ip * (Ip - 4 * Ir))^(1/2) + Ip * U)/(2 * Ip * Ir)
26
R2 = ((U * (Ip * (Ip - 4 * Ir))^(1/2) - Ip * U)/(2 * Ip * Ir)) * (-1)
27
%
28
29
% Octave solution
30
R1 = U*( (1 / (2 * Ir)) + ( sqrt(Ip * (Ip - 4 * Ir)) / (2 * Ip * Ir)) )
31
R2 = U*( (1 / (2 * Ir)) - ( sqrt(Ip * (Ip - 4 * Ir)) / (2 * Ip * Ir)) )
32
33
% eliminate the square root
34
R1 = U*( (1 / (2 * Ir)) + ( (Ip * (Ip - 4 * Ir))^(1/2) / (2 * Ip * Ir)) )
35
R2 = U*( (1 / (2 * Ir)) - ( (Ip * (Ip - 4 * Ir))^(1/2) / (2 * Ip * Ir)) )
36
%
37
38
% Prog end

In SR1 stehen die gesuchten Formeln. Kann man da jetzt irgendwie die 
Variablen U, Ip und Ir rein geben, und dann purzelt das ergebnis raus?
irgendwie so:
1
SR1[U, Ip, Ir]

Gibts da einen Weg?

Grüße

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

eval()

von Max K. (laternenjoe)


Lesenswert?

evtl. subs()?

von Walter T. (nicolas)


Lesenswert?

Kaj G. schrieb:
> In SR1 stehen die gesuchten Formeln.

Was steht denn in SR1? Irgendetwas wie "@(U,Ip,Ir) ... ?

EDIT: OK, SR1 ist keine anonyme Funktion, sondern hat die Klasse "sym". 
Dann habe ich keine Ahnung - ich habe keine Zugriff auf die Symbolic 
Toolbox.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.