Bonjour, je dois faire un programme sous matlab pour afficher la valeur approchée d'une équation différentielle.
L'équation est la suivante : y"-2y'+5y=e^x*(4x²+4x+14)
J'ai fait le début du programme que voici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function s=sol2(n, alpha, beta)
%On veut résoudre l'équation différentielle A(x)y"+B(x)y'+C(x)y=D(x)
%sur l'intervalle [alpha;beta]avec y(alpha) et y(beta) donnés
%on divise l'intervalle en n parties de pas 'h'
h=(beta-alpha)/n; %h est le pas; x(i)=i*h avec 1<=i<=n-1
b=(-2+5*h^2)*ones(1,n-1); %b(i)=-2*A(xi)+C(xi)*h^2
a=(1+h)*ones(1,n-1); %a(i)=A(xi)-B(xi)*h/2
c=(1-h)*ones(1,n-1); %c(i)=A(xi)-B(xi)*h/2
x=alpha:h:beta;d=D(x).*h.^2;
ya=TDMAsolver(a,b,c,d); %ya est la solution approchée
%y est la solution exacter
%affichage des courbe
s=plot(x,ya);
end |
1 2 3
| function y=D(x)
y=exp(x)*(4*x^2+4*x+14);
end |
Cependant, j'ai les erreurs suivantes et je n'arrive pas à les enlever :
??? Error using ==> mpower
Inputs must be a scalar and a square matrix.
Error in ==> sol2>D at 21
y=exp(x)*(4*x^2+4*x+14);
Error in ==> sol2 at 11
x=alpha:h:beta;d=D(x).*h.^2;
Pouvez vous m'aider?
Merci
Partager