Witam, piszę program, który wyprowadza równania stanu dla przekształtników energoelektronicznych. Podczas rozwiązywania układu równań metodą eliminacji Gaussa równania robią się zbyt długie i stwarza mi to problem. Mój problem polega na tym, że potrzebuję funkcję która będzie mi upraszczać wyrażenie algrebraiczne np:
wyrażenie:
R1+R2+2*(R1+R2)/(2)
sprowadzi do postaci
2*R1+2*R2
inny przykład:
(0-(+1)*((-UC1)/(-R1)))/(+1)
gdzie wynik to:
-UC1/R1
w wyrażeniu są używane operatory:
'+', '-', '*', '/' oraz nawiasy okrągłe " ( ) "
wszystkie zmienne w wyrażeniu są wcześniej dane. Wyrażenie jest typu string.
Nie musi być dokładnie tak uproszczone, chodzi mi o to aby wyrażenie zdecydowanie było krótsze. Mam świadomość, że taką możliwość mam w programach Mathematica i Maple. W tym problem, że ja muszę mieć to w delphi.
Czy może ktoś wie jak to zrobić, ma zrobione takie coś, postaram się wynagrodzić znaczącą pomoc, lub wie w jakiej książce mogę to znaleźć.
Z góry dziękuję za pomoc.
pozdrawiam
wyrażenie:
R1+R2+2*(R1+R2)/(2)
sprowadzi do postaci
2*R1+2*R2
inny przykład:
(0-(+1)*((-UC1)/(-R1)))/(+1)
gdzie wynik to:
-UC1/R1
w wyrażeniu są używane operatory:
'+', '-', '*', '/' oraz nawiasy okrągłe " ( ) "
wszystkie zmienne w wyrażeniu są wcześniej dane. Wyrażenie jest typu string.
Nie musi być dokładnie tak uproszczone, chodzi mi o to aby wyrażenie zdecydowanie było krótsze. Mam świadomość, że taką możliwość mam w programach Mathematica i Maple. W tym problem, że ja muszę mieć to w delphi.
Czy może ktoś wie jak to zrobić, ma zrobione takie coś, postaram się wynagrodzić znaczącą pomoc, lub wie w jakiej książce mogę to znaleźć.
Z góry dziękuję za pomoc.
pozdrawiam
