clear;clc;
syms x a;
m=5;%Changez-le vous-même
y=(11/6-3*x+3/2*x^2-1/3*x^3)^a
f=taylor(y,m+1,x);
w=sym(zéros(m+1,1));
w(1)=subs(f,x,0);
f=f-w(1);
pour n=m:-1:2
w(n+1)=subs(f-subs(f,x^n,0),x^n,1);
f=fw(n+1)*x^n;
fin
w(2)=subs(f,x,1)
Notez que parce que l'indice du tableau matlab commence à 1, ici w(1) est un terme constant, w(2) est un terme linéaire, et ainsi de suite, que est
y=w(1)+w(2)*x+w(3)*x^2+....+w(m+1)*x^m
【1】Transformer la fonction
>>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】Utilisez Collect pour fusionner des éléments similaires
>>ff=collect(f):
(2-3*a)*x^3+(3-b)*x^2+(21-c)*x+4-d = 0
【3】Utilisez maple pour extraire les coefficients polynomiaux s'il y en a beaucoup, vous pouvez utiliser des instructions de boucle.
>>c3=érable('coeff',ff,x,3)
c3 =2-3*a
>>c1=érable('coeff',ff,x,1)
c1 =21-c
>>c2=érable('coeff',ff,x,2)
c2 =3-b
>>c0=érable('coeff',ff,x,0)
c0 =4-d
Ajouté :
Cette fois, ça s’est passé comme ça. Le programme s’est déroulé. Je ne suis pas très satisfait. Et si on réglait le problème ensemble ?
syms a b c d x
%【1】Transformer la fonction
f=sym('2*x^3+3*x^2+21*x+4-(3*a*x^3+b*x^2+c*x+d)')
N=3;
pour i=0:N
temp=maple('coeff',f,x,N-i);
cp(1,i+1)={temp};
fin
celldisp(cp);
Ajout supplémentaire : Cette fois, je l'ai finalement résolu, mais cela a l'air très stupide et pas très idéal, je me contente de bien sûr, je pense qu'il peut être modifié pour être beau.
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;
pour i=0:N
temp=maple('coeff',f,x,N-i);
temp1(i+1)=temp;
fin
cp=temp1
a=solve(cp(1)), b=solve(cp(2)), c=solve(cp(3)), d=solve(cp(4))
Résultat de l'exécution :
a =2/3
b =3
c =21
d =4
Tout d'abord, le polynôme est dynamique, il doit donc être une entrée dans Matlab
;Deuxièmement, l'expression Matlab des polynômes doit être claire. Il s'agit d'extraire les coefficients des polynômes après avoir diminué la puissance pour représenter le polynôme. Le polynôme de degré -n du polynôme est représenté par un vecteur de dimension n+1 ; exemple, le polynôme 3*x^2 + 5 dans matlab Exprimé comme [3 0 5];
Enfin, vous devez comprendre la méthode Matlab de valeur de fonction polynomiale, qui est la commande polyval.
Sur la base de ce qui précède, le fichier M est le suivant :
fonction val = fpolyval(p,x)
% fonction ffonction polyval : fonction valeur val du polynôme p en x.
% Le terme d'entrée p est le coefficient du polynôme classé en puissances décroissantes ;
val = polyval(p,x);Par exemple : la valeur de 3*x^2 + 5 à x=1,2
>>p=[3 0 5];
>>x=[1 2];
>>val=fpolyval(p,x)
val =
8 17
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!