クリア;clc;
シム×ア;
m=5;%自分で変更してください
y=(11/6-3*x 3/2*x^2-1/3*x^3)^a
f=テイラー(y,m 1,x);
w=sym(zeros(m 1,1));
w(1)=subs(f,x,0);
f=f-w(1);
n=mの場合:-1:2
w(n 1)=subs(f-subs(f,x^n,0),x^n,1);
f=f-w(n 1)*x^n;
###終わり###w(2)=subs(f,x,1)
MATLAB 配列の添え字は 1 から始まるため、ここで w(1) は定数項、w(2) は線形項であることに注意してください。類推すると、
y=w(1) w(2)*x w(3)*x^2 .... w(m 1)*x^m
MATLAB で未決定の係数の問題を解決する方法
>>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】collectを使用して類似アイテムをマージする
>>ff=コレクト(f):
(2-3*a)*x^3 (3-b)*x^2 (21-c)*x 4-d = 0
[3] Maple を使用して多項式係数を抽出します (数が多い場合はループ文を使用できます)。
>>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
補充:
今回はこうなりました、プログラムは動きましたが、あまり満足していないので、一緒に解決してみませんか?
sms a b c d x
%【1】関数を変換する
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};
###終わり###セルディスプ(cp);
追記:今回ようやく解決しましたが、非常に間抜けであまり理想的とは言えないので、これで適当に作っていますが、もちろん改造すれば綺麗になると思います。
sms 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;
###終わり###cp=temp1
a=solve(cp(1))、b=solve(cp(2))、c=solve(cp(3))、d=solve(cp(4))
操作結果:
a =2/3
b =3
c =21
d =4
多項式 Px anxn an1xn1 a1x a0 の値を求める関数式 M ファイルを使用します
まず第一に、多項式は動的であるため、これは matlab の入力項である必要があります;
第二に、Matlab での多項式の表現を明確にする必要があります。多項式を表すべき乗を下げて多項式の係数を抽出することです。多項式の -n 次多項式は n 個の 1 次元ベクトルで表されます。たとえば、MATLAB の多項式 3*x^2 5 は [3 0 5];
と表現されます。上記に基づいて、M ファイルは次のようになります:
関数 val = fpolyval(p,x)
% 関数 fpolyval 関数: x における多項式 p の関数値 val。
% 入力項目 p は、降べきに並べられた多項式の係数です。
val = ポリバル(p,x);
例: x=1,2 での 3*x^2 5 の値
>>p=[3 0 5];
>>x=[1 2];
>>val=fpolyval(p,x)
値 =
8 17
以上がMATLAB を使用して多項式のテイラー級数展開係数を計算するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。