J'ai quelques problèmes sur la mise en équations n-linéaires dans matlab.Je ne sais pas comment je peux déclarer dans MATLAB.J'ai besoin de matlab code pour le réglage des équations n-linéaires ..ensemble d'équations n-linéaires dans matlab
Répondre
Vous pouvez écrire des équations n-linéaires comme une équation matricielle pour la résoudre. Ici vous pouvez trouver bon exemple: (! Vidéo) http://blogs.mathworks.com/pick/2007/09/13/matlab-basics-video-solving-linear-equations/
Voir aussi ces pages:
http://en.wikipedia.org/wiki/System_of_linear_equations
http://en.wikipedia.org/wiki/Matrix_equation
J'ai des n-équations et n-inconnues. Ce que je dois faire est de définir ces équations de sorte que lorsque l'entrée est entrée, la sortie sera donnée. Ceci est l'exemple d'entrée et de sortie de notre programme. Cela aidera à reconnaître notre problème. A1X1 + A2X2 .... + AnXn = B1. . . AnXn ............... = Bn que nous avons n-inconnues et n équations et je dois définir ces équations dans matlab. –
SO? Quel est le problème? Lire le wiki ... Tisser des équations n dans l'équation matricielle est l'un des problèmes les plus fondamentaux de l'algèbre linéaire. Si vous ne pouvez pas le faire, alors votre problème est en mathématiques pauvres, pas matlab ... – Gacek
Vous pouvez résoudre un système linéaire de diverses manières, selon qu'il existe une solution unique ou pas.
Un moyen simple est de le réduire à la forme d'échelons réduits (rref).
Tenir compte du système:
x + 5y = 4
2x - y = 1
Vous pouvez écrire la matrice de coefficient A, et l'ERS, B comme suit: ('
est l'opérateur de transposition)
>> A = [1 5; 2 -1]
A =
1 5
2 -1
>> B = [4 1]'
B =
4
1
Vous pouvez l'écrire comme une matrice augmentée (A | B):
>> horzcat(A,B)
ans =
1 5 4
2 -1 1
Et puis trouver le REF (A | B)
>> rref(ans)
ans =
1.0000 0 0.8182
0 1.0000 0.6364
Et donc x ~ .8182, y ~ .6364.
J'ai des n-équations et n-inconnues. Ce que je dois faire est de définir ces équations de sorte que lorsque l'entrée est entrée, le la sortie sera donnée.Ceci est l'exemple d'entrée et de sortie de notre programme. Cela aidera à reconnaître notre problème. A1X1 + A2X2 .... + AnXn = B1 . . . AnXn ............... = Bn que nous avons n-inconnues et n équations et je dois définir ces équations dans matlab. –
La façon absolument plus rapide pour résoudre des équations linéaires dans MATLAB est simplement de configurer votre équation sur la forme
AX = B
puis résoudre par
X = A\B
Vous pouvez émettre
help mldivide
pour plus d'informations sur la division matricielle et ses limites.
Mais cela ne fonctionnera que s'il existe une solution unique. (C'est-à-dire que A est inversible). –
@Alex: Oui, et cela produira un avertissement le disant. Il fonctionnera mieux que inv (A) * B cependant. J'ai aussi vérifié votre solution, et elle souffre du même problème (alors qu'il est plus long à taper). –
Un code pour la méthode itérative Guase Seidel tol est la tolérance d'erreur x0 est la première estimation pour la solution
function seidel(A,b,x0,tol,itmax)
%Solve the system Ax=b using the Gauss-Seidel iteration method.
clc
% =======================================================
% Programmer : A. Ziaee mehr
%
help seidel
n=length(b);
x=zeros(n,1);
%fprintf('\n')
disp('The augumented matrix is = ')
Augm=[A b]
Y=zeros(n,1);
Y=x0;
for k=1:itmax +1
for ii=1:n
S=0;
for jj=1:ii-1
S=S+A(ii,jj)*x(jj);
end
for jj=ii+1:n
S=S+A(ii,jj)*x0(jj);
end
if (A(ii,ii)==0)
break
end
x(ii)=(-S+b(ii))/A(ii,ii);
end
err=abs(norm(x-x0));
rerr=err/(norm(x)+eps);
x0=x;
Y=[Y x];
if(rerr<tol)
break;
end
end
% Print the results
if (A(ii,ii)==0)
disp('division by zero')
elseif (k==itmax+1)
disp('No convergence')
else
%fprintf('\n')
disp('The solution vector are : ')
fprintf('\n')
disp('iter 0 1 2 3 4 ... ');
fprintf('\n')
for ii=1:n
fprintf('%1.0f= ',ii);
fprintf('%10.6f ',Y(ii,1:k+1));
fprintf('\n')
end
fprintf('\n')
disp(['The method converges after ',num2str(k),' iterations to'])
x
end
itmax est le nombre maximal d'itérations qui empêche le programme de passer à une boucle unfinishrd. – Abolfazl
Ne pas dupliquer vos commentaires, et ajoutez une étiquette de devoirs le cas échéant. –