[Date Index]
[Thread Index]
[Author Index]
Re: Re: Re: Cannot Factor an expression
Syd,
Formally you are right but, if you evaluate my input (without
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}) you will see that
it actually works. The "official" syntax for PolynomialReduce was
changed in version 6, and now you are supposed to list the variables.
In version 5 this was optional. In any case, if you do not list the
variables, in other words, if you use the syntax
PolynomialReduce[f[x,y,..],g[x,y,...]] instead of
PolynomialReduce[f[x,y,..],g[x,y,...],{x,y,...}] Mathematica will
itself deduce the variables and evaluate the output correctly. This
is, in principle, less reliable, which is the reason for the change in
version 6, but the old way still works. Partly through laziness and
partly thorugh getting used to the older syntax I often forget to list
the variables.
Anyway, thanks for reminding me, it's a bad habit which may one day
get me into trouble although so far it never has ;-)
Andrzej
On 16 Apr 2008, at 08:02, Syd Geraghty wrote:
> Andrzej,
>
> There was a syntax problem with your PolynomialReduce function
> below ... (complete inputs) should have been:-
>
> q = Sum[(Subscript[z, i] - 1)*(=CE=BC - Subscript[x, i])^2, {i, 1, 3}]
>
> p = Expand[q]
>
> Factor[First[
> PolynomialReduce[
> p, {Subscript[z, 1] - 1, Subscript[z, 2] - 1,
> Subscript[z, 3] - 1}, {Subscript[x, 1], Subscript[x, 2],
> Subscript[x,
> 3]}]]].{Subscript[z, 1] - 1, Subscript[z, 2] - 1, Subscript[z, 3]
> - 1}
>
>
> There is a missing ", {Subscript[x, 1], Subscript[x, 2],
> Subscript[x, 3]}]"
>
> It seems your postings are sometimes missing lines because I am sure
> you would have tested your function yet it clearly fails 6.0.2's
> syntax checking.
>
> HTH Syd
>
>
> Syd Geraghty B.Sc, M.Sc.
>
> sydgeraghty at mac.com
>
> My System
>
> Mathematica 6.0.1 for Mac OS X x86 (64 - bit) (June 19, 2007)
> MacOS X V 10.5 .20
> MacBook Pro 2.33 Ghz Intel Core 2 Duo 2GB RAM
>
>
>
>
> On Apr 15, 2008, at 2:55 AM, Andrzej Kozlowski wrote:
>
>> I got my p's and q's mixed up in addition to having some garbled
>> input. So here we go again:
>>
>>
>> q = Sum[(Subscript[z, i] - 1)*
>> (\[Mu] - Subscript[x, i])^2, {i, 1, 3}]
>>
>> (Subscript[z, 1] - 1)*(\[Mu] - Subscript[x, 1])^2 +
>> (\[Mu] - Subscript[x, 2])^2*(Subscript[z, 2] - 1) +
>> (\[Mu] - Subscript[x, 3])^2*(Subscript[z, 3] - 1)
>> In[2]:=
>> p = Expand[q];
>>
>>
>> Factor[First[PolynomialReduce[p,
>> {Subscript[z, 1] - 1, Subscript[z, 2] - 1,
>> Subscript[z, 3] - 1}]]] .
>> {Subscript[z, 1] - 1, Subscript[z, 2] - 1,
>> Subscript[z, 3] - 1}
>>
>> (Subscript[z, 1] - 1)*(\[Mu] - Subscript[x, 1])^2 +
>> (\[Mu] - Subscript[x, 2])^2*(Subscript[z, 2] - 1) +
>> (\[Mu] - Subscript[x, 3])^2*(Subscript[z, 3] - 1)
>>
>>
>> All free and no need to load any Add On packages ;-)
>>
>> Andrzej Kozlowski
>>
>>
>> On 14 Apr 2008, at 18:46, Andrzej Kozlowski wrote:
>>> Factor is not "effectively the reverse of Expand", except in the
>>> case
>>> of when you expand an expression that has been factored in *the
>>> usual
>>> sense*, in other words, into multiplicative factors (don't forget
>>> that
>>> a "factor" is the same thing as a "divisor"). Other kinds of
>>> "pseudo-
>>> factorizations", like the one you want, are not unique, and
>>> Mathematica can't read your mind to find out which one you like
>>> best.
>>> For example:
>>>
>>> q = Sum[(Subscript[z, i] - 1)*(=CE=BC - Subscript[x, i])^2, {i, 1,
>>> 3}]
>>>
>>> (Subscript[z, 1] - 1)*(=CE=BC - Subscript[x, 1])^2 +
>>> (=CE=BC - Subscript[x, 2])^2*(Subscript[z, 2] - 1) +
>>> (=CE=BC - Subscript[x, 3])^2*(Subscript[z, 3] - 1)
>>>
>>> p = Expand[q];
>>>
>>> FullSimplify[p]
>>>
>>> (Subscript[z, 1] + Subscript[z, 2] + Subscript[z, 3] - 3)*\[Mu]^2 -
>>> 2*Subscript[x, 1]*(Subscript[z, 1] - 1)*\[Mu] -
>>> 2*Subscript[x, 2]*(Subscript[z, 2] - 1)*\[Mu] -
>>> 2*Subscript[x, 3]*(Subscript[z, 3] - 1)*\[Mu] +
>>> Subscript[x, 1]^2*(Subscript[z, 1] - 1) +
>>> Subscript[x, 2]^2*(Subscript[z, 2] - 1) +
>>> Subscript[x, 3]^2*(Subscript[z, 3] - 1)
>>>
>>> in by many criteria not worse then the one you want.
>>>
>>> However, there is, in fact, a way to get the form q by starting
>>> from
>>> p, as long as you know that that is what you want:
>>>
>>>
>>> Factor[First[PolynomialReduce[q, {Subscript[z, 1] - 1,
>>> Subscript[z, 2] - 1, Subscript[z, 3] - 1}]]] .
>>> {Subscript[z, 1] - 1, Subscript[z, 2] - 1, Subscript[z, 3] - 1}
>>>
>>> (Subscript[z, 1] - 1)*(\[Mu] - Subscript[x, 1])^2 +
>>> (\[Mu] - Subscript[x, 2])^2*(Subscript[z, 2] - 1) +
>>> (\[Mu] - Subscript[x, 3])^2*(Subscript[z, 3] - 1)
>>>
>>> Andrzej Kozlowski
>>>
>>>
>>> On 13 Apr 2008, at 16:31, Francogrex wrote:
>>>> If Factor is effectively the reverse of expand, then how come
>>>> factor
>>>> cannot find back the expression below?
>>>>
>>>> Expand[Sum[(Subscript[z, i] - 1)*(\[Mu] - Subscript[x, i])^2, {i,
>>>> 1,
>>>> 3}]]
>>>>
>>>> Factor[-3*\[Mu]^2 + 2*\[Mu]*Subscript[x, 1] - Subscript[x, 1]^2 +
>>>> 2*\[Mu]*Subscript[x, 2] - Subscript[x, 2]^2 + 2*\[Mu]*Subscript[x,
>>>> 3] -
>>>> Subscript[x, 3]^2 + \[Mu]^2*Subscript[z, 1] -
>>>> 2*\[Mu]*Subscript[x, 1]*Subscript[z, 1] + Subscript[x, 1]^2*
>>>> Subscript[z, 1] + \[Mu]^2*Subscript[z, 2] -
>>>> 2*\[Mu]*Subscript[x, 2]*Subscript[z, 2] + Subscript[x, 2]^2*
>>>> Subscript[z, 2] + \[Mu]^2*Subscript[z, 3] -
>>>> 2*\[Mu]*Subscript[x, 3]*Subscript[z, 3] + Subscript[x, 3]^2*
>>>> Subscript[z, 3]]
>>>>
>>>> Is there some additional arguments to the function factor so that
>>>> it
>>>> can find back the original:
>>>> Sum[(Subscript[z, i] - 1)*(\[Mu] - Subscript[x, i])^2, {i, 1, 3}]
>>>>
>>>> Thanks for help with this
>>>>
>>>
>>>
>>
>>
>
Prev by Date:
**Re: Extending Integrate[]**
Next by Date:
**Re: A Problem with Simplify**
Previous by thread:
**Re: Re: Re: Cannot Factor an expression**
Next by thread:
**Re: Cannot Factor an expression**
| |