English 中文(简体)
Divide two polynomials using MATLAB
原标题:
  • 时间:2009-11-13 03:37:10
  •  标签:
  • matlab

I want to divide p(x) by q(x) given that:

p(x)=-5x^4+3x^2-6x
q(x)=x^2+1

I tried:

p=inline( -5*(x^4)+3*(x^2) , x )

p =
     Inline function:
     p(x) = -5*(x^4)+3*(x^2)

q=inline( x^2+1 , x )

q =
     Inline function:
     q(x) = x^2+1

deconv(p,q)

but got error:

??? Undefined function or method  filter  for input arguments of type  inline .

Error in ==> deconv at 32
   [q,zf] = filter(b, a, [1 zeros(1,nb-na)]);

WHY?

问题回答

Inline functions are just matlab expressions that it will evaluate. It has no idea whether they are polynomials or not.

You want this:

p = [-5 0 3 -6 0];
q = [2 0 1];

[quotient remainder] = deconv(p, q)

No need for Symbolic Math Toolbox here.

r = sym(p) sym(q) would do the trick. The result would be a symbolic function, of course. To convert that to inline, s = inline(r).

Edit: As for the "WHY": you cannot divide two inline functions. Instead, they must first be converted to their symbolic representation.





相关问题
MATLAB Solving equations problem

I want to solve these equations using MATLAB and I am sure there is a non zero solution. The equations are: 0.7071*x + 0.7071*z = x -0.5*x + 0.7071*y + 0.5*z = y -0.5*x - 0.7071*y +...

Difference between MATLAB s matrix notations

How do you read the following MATLAB codes? #1 K>> [p,d]=eig(A) // Not sure about the syntax. p = 0.5257 -0.8507 -0.8507 -0.5257 d = ...

preventing data from being freed when vector goes out of scope

Is there a way to transfer ownership of the data contained in a std::vector (pointed to by, say T*data) into another construct, preventing having "data" become a dangling pointer after the vector goes ...

Divide two polynomials using MATLAB

I want to divide p(x) by q(x) given that: p(x)=-5x^4+3x^2-6x q(x)=x^2+1 I tried: p=inline( -5*(x^4)+3*(x^2) , x ) p = Inline function: p(x) = -5*(x^4)+3*(x^2) q=inline( x^2+1 , x ) q = ...

matlab deals with Fibbonacci

The Fibonacci series is given as follows: 1, 2, 3, 5, 8, 13, 21, ... How can I write a script which calculates and prints the n-th Fibonacci term (for n>2), where n is inputed by the user. This ...

How do I plot lines between all points in a vector?

I have a vector containing some points in 2-D space. I want MATLAB to plot these points with lines drawn from every point to every other point. Basically, I want a graph with all vertices connected. ...

How do I create a string using a loop variable in MATLAB?

I have a loop like this: for i=1:no %some calculations fid = fopen( c:\out.txt , wt ); %write something to the file fclose(fid); end I want data to be written to different files like ...

热门标签