(wx)Maxima

Hi all,

Did not use wxMaxima for a while now (great tool for EEng BTW) ... I need to extract a particular variable from an equation with 3 or 4 variables ...

Lets say this: V0(VCC, R1, R2, R3); V0 = VCC.R2/(R2+ R1.R3/R1+R3)) and I need to extract R2 from (VCC, V0, R1, R3). i.e. VCC(V0, R1, R3)

Is that possible with wxMaxima ?

Best Regards, H

Reply to
habib
Loading thread data ...

Pardon me ... R2(VCC, V0, R1, R3) ... I'm quite tired these days

Reply to
habib

Apologies,

this is done by solve([V0=(5*R2)/(R1 . R3/(R3+R1)+R2)], [R2]);

H
Reply to
habib

I use wxMaxima from time to time but every time I do I have to re-learn it because its syntax is so non-intuitive.

Mathematica is really the most pleasant symbolic-solver I've tried and at $3000 for a standard commercial license it almost seems like a good value...

Reply to
bitrex

Not directly wxMaxima related but if you're trying to solve for the transfer function/admittance/output voltage etc. of some complex network of passive elements in series/shunt using the admittance/conductance/transmission matrix-multiplication method as appropriate is much easier; it makes solving for transfer functions of circuits like this a breeze particularly if you want to include parasitics:

Reply to
bitrex

Hi,

I did not use at the moment Mathematica but MathCAD is also a decent tool for EEng (MathCAD recognize physical dimensions, Farad, Ohm, Amperes, Volts ... so it helps a lot ... !), but are too much expensive for me as an independent consultant ... wxMaxima is a bit hard to master, ok not as intuitive as MatchCAD but it makes the job.

Best Regards, H

Reply to
habib

Ah ! For this one it require me a week or two with wxMaxima ... need to think about solving methods ... and writing equations by hand, two second order quadripoles in series ... mmmh, a funny job

Reply to
habib

For personal use, it's far more reasonable.

.

Joe Gwinn

Reply to
Joe Gwinn

Solving ladder-networks with regular-algebra is dreadful for orders over about two...The A B C D elements of a 2x2 square matrix for an impedance in series or admittance in shunt are easy:

Then if you have any ladder-type combination of impedances in series plus admittances in shunt you just multiply the respective ABCD matricies for each element in sequence with the output of the previous step left-to-right in the order they appear, and 1/A of the square matrix that's returned spits out the transfer function of the whole network immediately

Reply to
bitrex

This also obviously works if the input is DC and it's a series/parallel network of solely resistors

Reply to
bitrex

Glad to see you figured it out! That's exactly what I would have suggested.

I usually keep track of things in pieces, so I would have written something like:

v0_eqn : V0 = VCC*R2/(R2 + R1*R3/(R1+R3)); solve(v0_eqn, R2);

The output looks like:

(%i1) v0_eqn : V0 = VCC*R2/(R2 + R1*R3/(R1+R3));

R2 VCC (%o1) V0 = ------------ R1 R3 ------- + R2 R3 + R1

(%i2) solve(v0_eqn, R2);

R1 R3 V0 (%o2) [R2 = --------------------------------] (R3 + R1) VCC + ((- R3) - R1) V0

Typically I'm storing these in a big chain and doing one big "symbolic solve" at the end.

Cheers, glad to see another Maxima user in the wild :D

Reply to
Tony Arkles

It isn't clear from your description what you want to do.

For something this simple the back of an envelope ought to be enough.

Otherwise Equation Solve and specify which variable you want it to construct a solution for. Things get ugly at cubic or higher complexity.

Otherwise some combination of simplify, factor and substitute often works for me. I only use it for non-linear expressions so horrible that the risk of typographical errors dominates working it by hand.

It doesn't make the silly sort of slips that a human makes.

--
Regards, 
Martin Brown
Reply to
Martin Brown

This looks like an ideal problem for Roger Schlafly's equation solvers, Eureka or Mercury. I have searched far and wide for progams as good as his with no luck. I use WinXP where it runs fine. Win7 and later versions will work providing they can run DOS programs. It should run under WINE.

Here is a simple example to calculate the values for an RC time constant problem. You enter the desired equations, then enter the given values.

Eureka will figure out what it needs to solve and complete the calculations for you. It will put all the values in the solution list so you can do a sanity check and pick the answers you need.

; RC Time Constant

Deg = (180 * Rad) / pi Hz = 1 / (2 * pi * T)

Rad = Atan(Xc / R) T = R * C Xc = 1 / (2 * pi * Hz * C)

Hz = 1e6 R = 1e3

Here are the solutions:

Solution Voariables: Deg = 57.2957795130823*Rad = +45.0000000000000 Rad = ATAN(Xc/1000) = +0.78539816339745 Hz = +1000000.0000000000 T = 1000*C = +1.59154943091895E-07 Xc = 1/(6283185.30717959*C) = +1000.0000000000 R = +1000.0000000000000 C = +1.59154943091895E-10

Residuals and derived equations: { 0 } Deg=57.2957795130823*Rad { 0 } 1000000=1/(6283.18530717959*C) { 0 } 0=0 { 0 } Rad=ATAN(Xc/1000) { 0 } T=1000*C { 0 } Xc=1/(6283185.30717959*C) { 0 } Hz=1000000 { 0 } R=1000

Largest residual is 0 Method: Exact

Eureka and Mercury will do numerical integration, plots, financial calculations and much more. Here is an example of a minimization problem:

; This problem is to find the minimum distance from a plane to an ellipsoid. ; Mercury takes a long time on this.

MINIMIZE F x^2 + 2 y^2 + 3 z^2 = 20 ; ellipsoid 3 u + 4 v + 3 w = 54 ; plane F = (x - u)^2 + (y - v)^2 + (z - w)^2 ; square of distance

; exact solution is: x = 3 , y = 2 , z = 1 ; u = 6 , v = 6 , w = 4 ; F = 34

{ starting values } x := 0 y := 0 z := 0 u := 8 v := 8 w := 8

DIGITS 6 PROGRESS x

You can get Eureka and Mercury here:

formatting link

--
The best designs occur in the theta state. - sw
Reply to
Steve Wilson

I will take this snapshot and pin it on my wall in my Lab :-)

Read this carefully and Rrrright that's the method ! Thx bitrex ;-)

Reply to
habib

Back 10 years ago I used Maxima extensively and I must admit I'm not anymore an expert with it as I was ! Shame on me for searching 2 hours about a so simple "solve Maxima" semantics ... I'll be back with wxMaxima these days. H

Reply to
habib

On 29/12/2020 19:18, habib wrote: > Hi all, > > Did not use wxMaxima for a while now (great tool for EEng BTW) ... I need to extract a particular variable from an equation with 3 or 4 variables ... > > Lets say this: V0(VCC, R1, R2, R3); V0 = VCC.R2/(R2+ R1.R3/R1+R3)) and I need to extract R2 from (VCC, V0, R1, R3). i.e. VCC(V0, R1, R3) > > Is that possible with wxMaxima ?

It isn't clear from your description what you want to do.

For algebra this simple the back of an envelope ought to be enough.

Otherwise Equation Solve and specify which variable you want it to construct a solution for. Things get ugly at cubic or higher complexity.

Otherwise some combination of simplify, factor and substitute often works for me. I only use it for non-linear expressions so horrible that the risk of typographical errors dominates working it by hand.

It doesn't make the silly sort of slips that a human makes.

--
Regards, 
Martin Brown 

Apologies if this appears twice. Newsreader crashed on posting it.
Reply to
Martin Brown

(%i23) solve([V0 = VCC*R2/(R2+ R1*R3/(R1+R3))], [R2]);

(%o23) [R2=(R1*R3*V0)/((R3+R1)*VCC+(-R3-R1)*V0)]

Is that what you wanted?

--
Regards, 
Martin Brown
Reply to
Martin Brown

solve([V0 = VCC*R2/(R2+ R1*R3/(R1+R3))], [R2]); that is was I wanted among many other Maxima "meandres as in French" I'm managing at this moment, Thx

Reply to
habib

Look at the low IQ ape still pretending he's an EE....

Reply to
Fred Bloggs

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.