bonjour,
je cherche a tracer avec matlab k=f(j) tel que k=-ai*i-bi*j avec (a et b sont des ctes positives) et i variant de -10 a 10,et j=1:6
Merci
Version imprimable
bonjour,
je cherche a tracer avec matlab k=f(j) tel que k=-ai*i-bi*j avec (a et b sont des ctes positives) et i variant de -10 a 10,et j=1:6
Merci
Bonjour,
Pourrais-tu préciser quel est le problème que tu rencontres pour tracer cette fonction? Avec PLOT ca devrait faire l'affaire, non?
Bonne apm,
Duf
voila le code
il faut obtenir des droites croiséesCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 t=2; r=0.275; s=0.046; be=9.274*1e-24; beK=be*7.24292*1e22; for i=-10:10 for j=1:6 en1=-r*i*i; en2=-t*beK*i; end k=en1+j*en2 end plot(j,k,'K:x')
Je comprends pas bien ce que tu veux faire avec ton code :?, tes boucles ne servent à rien puisque tu stockes les données dans des variables de dimension 1, tu ne conserves que la dernière valeur calculée.
De plus, ta boucle sur j, ne sert pas du tout puisque tu n'utilises pas j dans cette boucle là...
En plus ce que tu veux tracer semble être non pas k=f(j) mais k=f(i,j)
Est-ce que c'est quelquechose comme ca que tu souhaites?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 t=2; r=0.275; s=0.046; be=9.274*1e-24; beK=be*7.24292*1e22; i=[-10:10]; figure for j=1:6 k(j)={-r*i.^2-t*beK*i*j}; plot(i,k{j},'K:x'); hold on end
j'ai essaye d'utiliser plot(j,k{j}); mais les courbes ne se croisent pas....
Euh en fait la question est plutôt de savoir ce que tu veux faire en fait.
Les courbes qui se croisent ce n'est qu'un résultat mais je pense qu'il faudrait que tu éclaircisses le besoin que tu as parce que honnêtement j'ai toujours pas compris :oops:
voila , je pense que le probleme est au niveau des ctes a et b
Merci
Salut,
comme duf42, je pense qu'il y a un soucis dans la définition de ton problème... Mais j'ai peut-être une piste : duf42 a considéré que ta variable est i et que j est un paramètre, en lisant tes premiers posts, j'ai plutôt l'impression que c'est l'inverse : j est la variable et i est un paramètre.
Je te propose donc ceci :
On obtient 21 courbes dont certaines se croisent...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 t=2; r=0.275; s=0.046; be=9.274*1e-24; beK=be*7.24292*1e22; for i=-10:10 for j=1:6 k(i+11,j)=-r*i*i+j*-t*beK*i end end figure for p=1:21 hold on, plot(1:6,k(p,:),'K:x'); end
Est ce que cela se rapproche de ce que tu cherches?
cela se rapproche de ce que je cherche
merci
maintenant. je cherche a tracer les valeurs propres E en fonction de Hz(champ magnétique) de l'opérateur suivant :H=H1+H2=e(Sx2-Sy2)+t*Sz*beK*hz avec S est l'opérateur de spin: S(Sx Sy Sz)
prenons par exemple le cas de S=2
voila j'ai essaye le code :
il me reste a faire une boucle sur hz pour tracer E=f(hz)Code:
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
63
64
65
66
67
68
69
70
71
72
73
74 t=2 be=9.274*1e-24; beK=be*7.24292*1e22; e=0.046; sx = 0 1.0000 0 0 0 1.0000 0 1.2247 0 0 0 1.2247 0 1.2247 0 0 0 1.2247 0 1.0000 0 0 0 1.0000 0 Sx2=sx*sx Sx2 = 1.0000 0 1.2247 0 0 0 2.5000 0 1.5000 0 1.2247 0 3.0000 0 1.2247 0 1.5000 0 2.5000 0 0 0 1.2247 0 1.0000 Sy = Columns 1 through 4 0 0 - 1.0000i 0 0 0 + 1.0000i 0 0 - 1.2247i 0 0 0 + 1.2247i 0 0 - 1.2247i 0 0 0 + 1.2247i 0 0 0 0 0 + 1.0000i Column 5 0 0 0 0 - 1.0000i 0 sy2=Sy*Sy sy2 = 1.0000 0 -1.2247 0 0 0 2.5000 0 -1.5000 0 -1.2247 0 3.0000 0 -1.2247 0 -1.5000 0 2.5000 0 0 0 -1.2247 0 1.0000 H1=e*(Sx2-sy2) H1 = 0 0 0.1127 0 0 0 0 0 0.1380 0 0.1127 0 0 0 0.1127 0 0.1380 0 0 0 0 0 0.1127 0 0 Sz = 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 -2 H2=beK*t*Sz H2 = 2.6868 0 0 0 0 0 1.3434 0 0 0 0 0 0 0 0 0 0 0 -1.3434 0 0 0 0 0 -2.6868
H=H1+H2=e(Sx2-Sy2)+t*Sz*beK*hz