Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Topic: get coefficients from a symbolic polynomial
Replies: 6   Last Post: Jan 5, 2013 5:49 PM

 Search Thread: Advanced Search

 Messages: [ Previous | Next ]
 Qiming Posts: 10 Registered: 12/21/12
Re: get coefficients from a symbolic polynomial
Posted: Jan 5, 2013 5:49 PM
 Plain Text Reply

"Qiming " <qzfyc@mst.edu> wrote in message <kca9p0\$na1\$1@newscl01ah.mathworks.com>...
> "Nasser M. Abbasi" wrote in message <kca7tr\$o64\$1@speranza.aioe.org>...
> > On 1/5/2013 3:49 PM, Qiming wrote:
> > >
> >
> > > Hi Nasser:
> > >
> > > Thanks for your reply.
> > >
> > > In your case, actually only 'x' is symbolic, the coefficients 0,1,2,3 are already
> > >in numerical form. But my question is: what if 0,1,2,3 are all in symbolic forms?
> > >
> > > I only give a simple example so that you might think why can't I
> > >directly put 0,1,2,3 in the expression. However, in my real application,
> > >those coefficients long and complicated and are generated by MATLAB symbolic
> > >tool box. I just want to "retrieve" those coefficients for my future use. Of
> > >course I can check those coefficients from the command window, but I
> > >don't want to put them back in my code by hand.
> > >
> > > Qiming
> > >

> >
> > why is it so hard for someone to just make a simple example to explain
> > what they mean? one spends so much time writing words, instead of
> > making a simple code example.
> >
> > If you mean this:
> >
> > EDU>> syms x a b
> > EDU>> y=a*x^2+b*x+1;
> >
> > then do
> >
> > EDU>> coeffs(y,x)
> > [ 1, b, a]
> >
> > If you still mean something else, then make up a small example. Do not
> > explain in words, show a small Matlab example of the input polynomial
> > itself. complete and self contained example. I am sure you can make
> > one up if you try.
> >
> > --Nasser
> >
> >
> >

>
> Nasser:
>
> Okay, let me explain my questions more in details with an example.
>
> What I'm trying to do is to test the Galerkin's method, the following is the part of the code where I have an issue:
>
> ------------------------------------------------------------------------------------------------------
> clc;
> close all;
> clear all;
>
> NumOrder = 2; % approximation order
>
> t0 = 0; tf = 1; % time span for integration
>
> syms x c1 c2;
> y_x = c1*x + c2*x^2; % trial function, 2nd order polynomial
> dy_x = diff( y_x, x );
> residual_error = dy_x + y_x - 1; % residual error
>
> % Take the inner product of residual error and basis function
> IP(1) = int( residual_error*x, t0, tf );
> IP(2) = int( residual_error*x^2, t0, tf );
> ...
> ...
> ...
> ------------------------------------------------------------------------------------------------------
>
> If just run the code to where I provide, the MATLAB gives:
> IP(1) = (5*c1)/6 + (11*c2)/12 - 1/2
> IP(2) = (7*c1)/12 + (7*c2)/10 - 1/3
> What I need is the coefficient of IP, i.e.,
> 5/6, 11/12, -1/2 and
> 7/12, 7/10, -1/3
> c1 and c2 are the variables I need to solve.
> I want to construct a matrix A with the coefficents:
> A = [ 5/6, 11/12; 7/12, 7/10 ]
> and a vector b with
> b = [ 1/2; 1/3 ];
> After that, I can solve c1 and c2 by A*c=b, or c = inv(A)*b, where c = [c1;c2].
> That's what I really want to do.
>
> Hope this time it's clear.
>
> Qiming

Nasser:

Okay, I got it. As you suggested, I add one line to get those coefficients:

coefficients(1,:) = double(coeffs(IP(1)));

Then I have numerical coefficients.

Qiming

Date Subject Author
1/5/13 Qiming
1/5/13 Nasser Abbasi
1/5/13 Nasser Abbasi
1/5/13 Qiming
1/5/13 Nasser Abbasi
1/5/13 Qiming
1/5/13 Qiming

© The Math Forum at NCTM 1994-2017. All Rights Reserved.