Bonjour,
J'ai grandement besoin de votre aide dans le cadre d'un travail où je suis bloqué
Mon but:
Créer une matrice 15x15 avec des valeurs T(i,j)
A la fin je dois avoir la somme des valeurs de chaque ligne égale aux différentes valeurs du vecteur O (somme des valeurs de la première ligne = O(1)- somme des valeurs de la 2eme ligne = O(2)). Je dois faire la même chose avec la somme des éléments de chaque colonne de la matrice et le vecteur D.
Mes formules pour calculer les T(i,j):
A(i) = 1/(somme de 1 à 15(B(j).D(j)))
B(j) = 1/(somme de 1 à 15(A(i).O(i)))
On commence par calculer A en posant B=1
Enfin, T(i,j) = A(i).B(j).O(i).D(j)
Mon code ne fonctionne pas sans que je sache pourquoi...
Merci beaucoup pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 function []= OD() tic O=[191;43;110;78;49;372;398;193;442;137;199;53;72;90;527]; D=[363 46 133 79 70 236 194 90 310 127 168 70 57 130 881]; n=15; Results=[]; T=ones(12); A=ones(n,1); B=ones(1,n); A1=[]; A1=1/dot(B,D); A=A1*ones(n,1); B1=[]; B=[]; T1=zeros(n,1); T2=zeros(1,n); dif1=ones(n,1); dif2=ones(1,n); dif11=2; dif22=2; while (dif11>1 && dif22>1) B1=1/dot(A,O); B=B1*ones(1,n) A1=1/dot(B,D); A=A1*ones(n,1) for i=1:n for j=1:n if i==j T(i,j)=0; else T(i,j)=A(i)*B(j)*O(i)*D(j); end end end for l=1:n for k=1:n T1(l)=T(l,k)+T1(l); end end for p=1:n for q=1:n T2(p)=T(q,p)+T2(q); end end dif1=O-T1 dif2=D-T2 dif11=sum(dif1,1); dif22=sum(dif2,2); end clearvars n A B A1 B1 O D save('Results','T','T1','T2') toc end
Cypette
Partager