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.

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.