Items tagged with polynomial polynomial Tagged Items Feed

I am fitting polynomial differential equations to data, and I came across some troubling behavior. I have sets of coordinates in x, y, z, and values w at these coordinates. The x,y,z coordinates and the data at these coordinates are concatenations of three subsets of data each, and depending on the order of the concatenation, I get different polynomials from the stats fit command. The difference is not trivial -- it makes a huge differentce in the stability of the differential equations. I have written a demonstration worksheet to show this problem.

John Starrett

http://en.wikipedia.org/wiki/Hypersurface

http://people.cs.uchicago.edu/~niyogi/papersps/surfacesampling.pdf

hypersurface is a homogenous polynomial

f(x,y) = 0

i do not understand how sampling hypersurface can generate this kind of polynomial

 


Dear people in Mapleprimes,

 

I have a question about the ordering of monomials in a polynomial.

I hope you will help me understand how Maple works about it.

I inputed the polynomial as is written in black below.

Then, the outcome was blue, which ordering I could understand well: total degree ordering where at first 

those who have the order of 6 are collected which are 14 x^3*y^3, 6x*y^5, and then the following was those which 

have the order of 5: 21*x^5, -35 x^4*y, 9*x^3*y^2,-15*x^2*y^3, ... and so on.

And, among those who have the same order, lexical ordering was done, that is among 14 x^3*y^3, 6x*y^5, one which 

came first was the one with the larger degree about x, and among 21*x^5, -35 x^4*y, 9*x^3*y^2,-15*x^2*y^3, 

the first was 21*x^5, the second was -35*x^4*y, and so one, which was the ordering following the exponent about x.

 

And, then, I calculated Factor(polynomial) mod 7, which meaning I know.

Then, the result was 2*(x*y+2)*(3*y^3+x^2+3x*y)y.

I can understand the ordering among x*y and 2 in x*y+2, and that among 3y^3, x^2 and 3x*y in 3y^3+x^2*3x*y.

But, I can't understand why (x*y+2) comes at the first term, with 3 y^3+x^2+3x*y following it, and with y coming last.

 

This might be a trivial question. But, I hope you will teach me about this.

 

Best wishes.

 

taro 

 

polynomial := 14*x^3*y^3+6*x*y^5+21*x^5-35*x^4*y+9*x^3*y^2-15*x^2*y^3+12*y^4+18*x^2*y-30*x*y^2

14*x^3*y^3+6*x*y^5+21*x^5-35*x^4*y+9*x^3*y^2-15*x^2*y^3+12*y^4+18*x^2*y-30*x*y^2

(1)

`mod`(Factor(polynomial), 7)

2*(x*y+2)*(3*y^3+x^2+3*x*y)*y

(2)

NULL

``


Download heck_mod.mw

Hi everyone,

 

I have a question regarding the use of the applyrule function. I have an expression that contains a polynomial. The expression looks something like:

 

Y := (a0 + a_1*x + a_2*x^2 + ... a_n*x^n)*f(y) + b_0 + b_1*x + b_2*x^2 + ... b_n*x^n)*g(y):

 

I would like to express this as y(x) = P_1*f(y) + P_2*g(y).

 

So far I have tried applyrule([a0 + a_1*x + a_2*x^2 + ... a_n*x^n = P_1, b_0 + b_1*x + b_2*x^2 + ... b_n*x^n) = P_2],Y):

 

This doesn't seem to work. Any suggestions?

 

 

 

 

Hi everyone, I have been trying to plot the Taylor Polynomial approximation with the following code. However, my maple crushes everytime I run it. I indexed some of the variables to get the plot. The code works fine without the index. What did I do wrong?

y := array(1 .. 2);

Digits := 10;

n := 30;

h := .1;

T := 0;

X := 1; 

f := (x, t) -> 1/(3*x(t)-t-2); 

one := 1/(3*x(t)-t-2);

two := diff(f(x, t), t);

first := diff(x(t), t)

 

for k to n do

y[1] := subs(t = T(k), x(T(k)) = X(k), one);

y[2] := subs(first = y[1], t = T, x(T(k)) = X(k), two);

X[k+1] := X+sum(y[i]*h^i/factorial(i), i = 1 .. 2);

T[k+1] := T+h

end do;

X[n];

data := [seq([T[n], X[n]], n = 0 .. 30)];

p[2] := plot(data, style = point, color = blue);

p[3] := plot(data, style = line, color = blue);
display(p[2],  p[3])


 

The code without Index (which works fine)

y := array(1 .. 2);

Digits := 10;

n := 30;

h := .1;

T := 1;

X := .1547196278;

f := (x, t) -> 1/(3*x(t)-t-2); 

one := x(t)^4*e^t-(1/3)*x(t);

two := diff(f(x, t), t);

first := diff(x(t), t);

for k to n do

y[1] := subs(t = T, x(T) = X, one);

y[2] := subs(first = y[1], t = T, x(T) = X, two);

X := X+sum(y[i]*h^i/factorial(i), i = 1 .. 2);

T := T+h

end do

Hi,

Anyone knows how to define a ring of polynomials with variables x_1,...,x_n such that x_i*x_j = -x_j*x_i if i \neq j?

I tried using the Physics package and AntiCommutator but the problem is that in that case the variables anticommute with themselves so I have x_i^2=0.

If there is no direct way to this, I guess I could define a procedure that would look at the monomials of a polynomial and order them in lexicographic order and each time it switches two variables with different index it would multiply the monomial by -1.

I also don't know how to do that since I don't know how to look at a specific term in a monomial. For example, if my monomial is x_ix_jx_k, is there a way to find the first two variables and then switch them if LexOrder(variable1,variable2)= LexOrder(x_i,x_j)= false, i.e. if i>j?

Thanks,

M-A

Hi I am working on the following problem (See below the line) from the text A Introduction to the Mathematics of Biology (Ch 2 pgs.21-23). I am working in Maple 18 and the code for this problem is from Maple 11 I think. If you look at the last line of code, I ran into a snag. Can anyone help????? We are in a study Gourp and alll are stumped.

_______________________________________________________________________________________________________

Problem # 2 - Find a fit for the cumulative US AIDS data as a polynomial function. Alsoo find an exponential fit for the data. (assume the Data I have inputed is correct if you don't have the book).

AIDS := [97, 206, 406, 700, 1289, 1654, 2576, 3392, 4922, 6343, 8359, 9968, 12990, 14397, 16604, 17124, 19585, 19707, 21392, 20846, 23690, 24610, 26228, 22768];
print(`output redirected...`); # input placeholder
[97, 206, 406, 700, 1289, 1654, 2576, 3392, 4922, 6343, 8359,

9968, 12990, 14397, 16604, 17124, 19585, 19707, 21392, 20846,

23690, 24610, 26228, 22768]

CAC := [seq(sum(AIDS[j]/(1000.0), j = 1 .. i), i = 1 .. 24)];
print(`output redirected...`); # input placeholder
[0.09700000000, 0.3030000000, 0.7090000000, 1.409000000,

2.698000000, 4.352000000, 6.928000000, 10.32000000,

15.24200000, 21.58500000, 29.94400000, 39.91200000,

52.90200000, 67.29900000, 83.90300000, 101.0270000,

120.6120000, 140.3190000, 161.7110000, 182.5570000,

206.2470000, 230.8570000, 257.0850000, 279.8530000]


Time := [seq(1981+(i-1)*(1/2), i = 1 .. 24)];
ln(CAC)=k*lnt+A
LnCAC := map(ln, CAC);
print(`output redirected...`); # input placeholder
[-2.333044300, -1.194022473, -0.3438997525, 0.3428802329,

0.9925107578, 1.470635510, 1.935571171, 2.334083760,

2.724054775, 3.071998629, 3.399328971, 3.686677031,

3.968441145, 4.209145378, 4.429661370, 4.615387808,

4.792578782, 4.943918402, 5.085810791, 5.207062453,

5.329074480, 5.441798471, 5.549406770, 5.634264465]
LnTime := map(ln, [seq((i+1)/(2*(1/10)), i = 1 .. 24)]);
print(`output redirected...`); # input placeholder
[ln(10), ln(15), ln(20), 2 ln(5), ln(30), ln(35), ln(40), ln(45),

ln(50), ln(55), ln(60), ln(65), ln(70), ln(75), ln(80), ln(85),

ln(90), ln(95), 2 ln(10), ln(105), ln(110), ln(115), ln(120),

3 ln(5)]
with(stats);
fit[leastsquare[[x, y], y = k*x+lnA]]([LnTime, LnCAC]);
print(`output redirected...`); # input placeholder
y = 3.293411005 x - 10.12289000
k := op(1, op(1, rhs(%))); LnA := op(2, rhs(`%%`)); A := exp(LnA);
print(`output redirected...`); # input placeholder
Error, invalid input: rhs received exp(LnA), which is not valid for its 1st argument, expr
Error, invalid input: rhs received exp(LnA), which is not valid for its 1st argument, expr
exp(LnA)

Hi all,

I have an expression of the form Sum(a[l]*x^l,l=0..n).

Is there a shorter way to obtain let's say the 5 lowest orders than add(coeff(expression,x,l)*x^l,l=0..4) ?

 

Cheers

NOh



This is my code for the Extended Euclidean Algorthim which should return integer l, polynomials pi,ri,si,ti for 0<=i<=l+1. And polynomial qi for 1<=i<=l such that si(f)+ti(g) = ri and sl(f)+tl(g)=rl=GCD(f,g).
The problem is, I keep getting division by zero. Also it evaluates pi = lcoeff(ri-1 - qiri) to be zero, everytime. Even when I remove this it still says there is a division of zero, which must be coming from qi:=quo(ri-1,ri, x); however I do not know why considering the requirements for the loop are that r[i] not equal zero. I really could use a fresh pair of eyes to see what I've done wrong. Any help would be greatly appreciated!!

a+a*c

a+a*b

a+b+c

assume system of polynomials are above, how to test whether inverse exist

and find inverse of them

 

how to convert legendre polynomials into system of polynomials of 3 variables for drawing sphere with this ideal?

is possible to draw sphere from system of monomial polynomials?

Hi all.

In the following program, i have normalized bernstein polynomials using gram- schmidt orthogonalization process and want to hybrid them with block pulse functions so that i have:

 

why the program is wrong?? where of it doesn't work properly?

please guide me

best wishes

OHB.mws

Mahmood   Dadkhah

Ph.D Candidate

Applied Mathematics Department

a := [x+1, x+2, x+3, x+4];

which command can remove polynomial x+2 from the list a;

to become

a := [x+1, x+3, x+4];

how to convert between (system of polynomials or module) and rational function which is a four dimensional space

#page 320 and 322 of book Singular introduction to commutative algebra

it return too many recursion 

 

hilbertseries([a+a*c, a+a*b, a+b+c]);

eq1 := a+a*c;

eq2 := a+a*b;

eq3 := a+b+c;

eq1a := Homogenize(eq1, h);

eq2a := Homogenize(eq2, h);

eq3a := Homogenize(eq3, h);

T3:=lexdeg([a,b,c,h]);

GB := Basis([eq1a,eq2a,eq3a], T3); #a

 

#MonomialHilbertPoincare(LeadingMonomial(GB[1],T3), LeadingMonomial(GB[2],T3), LeadingMonomial(GB[3],T3));

 

with(PolynomialIdeals):

MonomialHilbertPoincare := proc (I3)

#I3:=[LeadingMonomial(GB[1],T3), LeadingMonomial(GB[2],T3), LeadingMonomial(GB[3],T3)];

T2:=lexdeg([h,c,b,a]);

varj := [h,c,b,a];

I2 := InterReduce(I3, T2);

s := nops(I2);

if I2[1] = 0 then return 1 end if:

if I2[1] = 1 then return 0 end if:

if degree(I2[s]) = 1 then return (1-varj[1])^s end if:

lt := LeadingTerm(I2[s],T2);

leadexp := [degree(lt[2],h),degree(lt[2],c),degree(lt[2],b),degree(lt[2],a)];

j := 1;

for z from 1 to nops(leadexp) do

                if leadexp[j] = 0 then

                                j := j + 1;

                end if:

od:

finallist := [];

for z from 1 to nops(GB) do

                finallist := [op(finallist), GB[z]+varj[j]];

od:

quotientlist := Generators(Quotient(GB, varj[j]));

finallist2 := [];

for z from 1 to nops(quotientlist) do

                finallist2 := [op(finallist2), op(z,quotientlist)];

od:

return MonomialHilbertPoincare(finallist) + varj[1]*MonomialHilbertPoincare(finallist2);

end proc;

F:=[LeadingMonomial(GB[1],T3), LeadingMonomial(GB[2],T3), LeadingMonomial(GB[3],T3)];

MonomialHilbertPoincare(F);

 

1 2 3 4 5 6 7 Last Page 1 of 10