Home > Article > Computer Tutorials > Use MATLAB to calculate the Taylor series expansion coefficients of polynomials
clear;clc;
syms x a;
m=5;%Change it yourself
y=(11/6-3*x 3/2*x^2-1/3*x^3)^a
f=taylor(y,m 1,x);
w=sym(zeros(m 1,1));
w(1)=subs(f,x,0);
f=f-w(1);
for n=m:-1:2
w(n 1)=subs(f-subs(f,x^n,0),x^n,1);
f=f-w(n 1)*x^n;
end
w(2)=subs(f,x,1)
Note that because the matlab array subscript starts from 1, here w(1) is a constant term and w(2) is a linear term, so By analogy,
y=w(1) w(2)*x w(3)*x^2 .... w(m 1)*x^m
【1】Transform the function
>>f=sym('2*x^3 3*x^2 21*x 4-(3*a*x^3 b*x^2 c*x d)=0')
f =
2*x^3 3*x^2 21*x 4-(3*a*x^3 b*x^2 c*x d)=0
【2】Use collect to merge similar items
>>ff=collect(f):
(2-3*a)*x^3 (3-b)*x^2 (21-c)*x 4-d = 0
[3] Use maple to extract polynomial coefficients. If there are many, you can use loop statements.
>>c3=maple('coeff',ff,x,3)
c3 =2-3*a
>>c1=maple('coeff',ff,x,1)
c1 =21-c
>>c2=maple('coeff',ff,x,2)
c2 =3-b
>>c0=maple('coeff',ff,x,0)
c0 =4-d
Replenish:
This time it turned out like this, the program worked, but I’m not very satisfied. How about we sort it out together?
syms a b c d x
%【1】Transform the function
f=sym('2*x^3 3*x^2 21*x 4-(3*a*x^3 b*x^2 c*x d)')
N=3;
for i=0:N
temp=maple('coeff',f,x,N-i);
cp(1,i 1)={temp};
end
celldisp(cp);
Additional addition: This time it is finally solved, but it looks very stupid and not very ideal. I just make do with it. Of course, I believe it can be modified to be beautiful.
syms a b c d x
f=sym('2*x^3 3*x^2 21*x 4-(3*a*x^3 b*x^2 c*x d)')
N=3;
for i=0:N
temp=maple('coeff',f,x,N-i);
temp1(i 1)=temp;
end
cp=temp1
a=solve(cp(1)), b=solve(cp(2)), c=solve(cp(3)), d=solve(cp(4))
operation result:
a =2/3
b =3
c =21
d =4
First of all, the polynomial is dynamic, so this must be an input term of matlab;
Secondly, the Matlab expression of polynomials must be clear. It is to extract the coefficients of the polynomials after lowering the power to represent the polynomial. The -n degree polynomial of the polynomial is represented by an n 1-dimensional vector; for example, the polynomial 3*x^2 5 in matlab Expressed as [3 0 5];
Finally, you need to understand the matlab method of polynomial function value, which is the command polyval.
Based on the above, the M file is as follows:
function val = fpolyval(p,x)
% Function fpolyval Function: Function value val of polynomial p at x.
% The input item p is the coefficient of the polynomial arranged in descending powers;
val = polyval(p,x);
For example: 3*x^2 5 value at x=1,2
>>p=[3 0 5];
>>x=[1 2];
>>val=fpolyval(p,x)
val =
8 17
The above is the detailed content of Use MATLAB to calculate the Taylor series expansion coefficients of polynomials. For more information, please follow other related articles on the PHP Chinese website!