why do i get "invalid parameter list"?

6 views (last 30 days)
The problem.... I need to vary H that goes from 0 to 1 with 1000 points of discretion. Then calculate my moyenne (magnetization median) and plot it in function of H. All parameters are in my code. but it give me an error in the way i write my moyenne equation. See code
function moyenne=M(1-(1/sinh(J/2*kb*T).^4))^1/8;
plot(H,M)
Please help!!!

Accepted Answer

Image Analyst
Image Analyst on 1 Nov 2016
That's not proper syntax. You're trying to both call and declare a function simultaneously. You can't do that.
Try it this way
H = linspace(0, 1, 1000);
moyenne = M(1-(1 ./ sinh(J ./ 2*kb*T).^4)) .^ (1/8);
plot(H, moyenne)
I'm still not sure about that weird expression. Hopefully J or T or M has 1000 elements. If M is an array rather than some other function, then you need to make sure the expression inside is non-zero, non-negative, and non-fractional numbers. And I don't see how H is involved in any way in your expression for moyenne. So I still think it won't work until you define what things are properly.
  2 Comments
mario  hernandez
mario hernandez on 1 Nov 2016
Edited: mario hernandez on 1 Nov 2016
H is inside my function M=Ising2D(J,H,beta,N,Nreal) (the first line on my code, which is attach to the question) I used H= 0:0.001:1; then i change the moyenne equation the way you told me.. but now it give me another error in line 67... (see code) which is the definition to accept the condition.
thanks for your answer
Image Analyst
Image Analyst on 1 Nov 2016
Why are J,H,beta,N, and Nreal in the argument list when you just overwrite what the user passed in for them with your own values?

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!