Path: csiph.com!usenet.pasdenom.info!news.albasani.net!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Joe Riel Newsgroups: comp.soft-sys.math.maple Subject: Re: Simplify Difficulty Date: Sun, 10 May 2015 08:50:05 -0700 Organization: A noiseless patient Spider Lines: 94 Message-ID: <87d2284eky.fsf@san.rr.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: mx02.eternal-september.org; posting-host="15591ad2607da309a0d1a78a1d632bc7"; logging-data="24134"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+DtT8BGOFvudfUNiAc0WSB" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) Cancel-Lock: sha1:pbYKWDtj99eBPxfMVIc8LpkeN9I= sha1:WNM37yu04Q3cniSutVQgzoOQ0tU= Xref: csiph.com comp.soft-sys.math.maple:1136 "Thomas D. Dean" writes: About a dozen years ago I wrote a Maple package using many of the inductance formulas in Grover and elsewhere. Never got around to pushing it to the web. I should try to hunt it down. Joe > I want to get a simpler expression for a function from C code. > > I have the inductance calculations from the National Bureau of > Standards, developed by Grover. > > I copied the C function to a proc, with some minor edits, such as > making variable declarations local, changing = to :=, asinh to > arcsinh, etc. with evalf, Maple 15 produces the same result as the C > code, so my edits were correct. > > If I call the proc as > rectangle(ht, wd, len, turns) > I get a very complicated expression, as expected. > > I have been attempting, unsuccessfully to simplify this and am about > to try manually. Simple is 10 to 12 terms. > > Before I do this, will Maple do it? > > Tom Dean > > rectangle := proc(a, a1, b, N) > local p, q, r, s, t, L; > local aob, a1ob, g2, b2, a2ob2, aa1, b2oaa1; > > a1ob := a1 / b; > aob := a / b; > > t := ((1/2) / a1ob) * arcsinh (aob); > L := t; > > t := ((1/2) / aob) * arcsinh (a1ob); > L := L + t; > > q := a1ob * a1ob; > r := (1/2) * (1 - q) / a1ob; > s := a / (b * sqrt (1 + q)); > t := -r * arcsinh (s); > L := L + t; > > a2ob2 := aob * aob; > r := (1/2) * (1 - a2ob2) / aob; > s := a1 / (b * sqrt (1 + a2ob2)); > t := -r * arcsinh (s); > L := L + t; > > t := -(1/2) * a1ob * arcsinh (a / a1); > L := L + t; > > t := -(1/2) * aob * arcsinh (a1 / a); > L := L + t; > > b2 := b * b; > g2 := a * a + a1 * a1; > q := sqrt (1 + g2 / b2); > aa1 := a * a1; > b2oaa1 := b2 / aa1; > s := 1 / (b2oaa1 * q); > t := ((1/2) * Pi - arctan (s)); > L := L + t; > > r := b2oaa1 / 3; > t := r * q * (1 - ((1/2) * g2) / b2); > L := L + t; > > t := r; > L := L + t; > > t := -r * sqrt (1 + a2ob2) * (1 - (1/2) * a2ob2); > L := L + t; > > q := (a1 * a1) / b2; > p := sqrt (1 + q); > t := -r * p * (1 - (1/2) * q); > L := L + t; > > p := b / (6 * aa1); > q := g2 * sqrt(g2); ## g^2 := a^2 + a1^2 */ > q := (q - (a * a * a) - (a1 * a1 * a1)) / b2; > t := p * q; > L := L + t; > L := 8*(10^(-7)) * N * N * L * aa1 / b > end proc; -- Joe Riel