Quantcast Mathcad to Matlab Text - Physics Forums Library

PDA

View Full Version : Mathcad to Matlab


intel2
Oct29-08, 01:55 PM
how can someone do the attach calculation in Matlab?

shoehorn
Oct29-08, 03:51 PM
Read the documentation. The Matlab getting started guide is particularly good, and will teach you how to perform calculations like this and more.

intel2
Oct29-08, 04:09 PM
i went through it but i couldnt get to work.. this is what i did:

for i = 0 : 100
for j = 1 : 101


dme = (sum (sum ((i/j)^ 2)+log(sqrt(j))));
end
end

intel2
Oct29-08, 04:17 PM
how about this

for i = 0 : 100
for j = 1 : 101
x= (i/j)^2;
y = (j)^.5;
end
end


F = (sum (x)+log(y))

but the answer is not consistent with the mathcad ansr

shoehorn
Oct30-08, 12:36 AM
There are a couple of important things to note.

Firstly, Mathcad is an infamously flaky piece of software. Use it only if you have absolutely no alternative.


Secondly, the answer you've got from Mathcad is incorrect. The actual result of the summation you've given is

\sum_{i=0}^{100} \sum_{j=1}^{101} \left[ \left(\frac{i}{j}\right)^2 + \log\sqrt{j} \right] \approx 571831.873

You can verify this using Mathematica, Maple, Matlab, or your own C/C++/Python code. Again let me stress: Mathcad is absolutely atrocious software. I've seen the source, and it's not pretty. Avoid it like the plague.


Thirdly, to evaluate the sum in Matlab you can do something like the following:


% First declare and initialize a dummy variable
x = 0;

% Now perform the summation:
for i = 0:100
for j = 1:101
x = x + (i / j)^2 + log(sqrt(j));
end
end


This should leave you with the variable x holding the result. Note that this is neither a particularly efficient nor elegant way of computing such a sum.

Emreth
Oct30-08, 01:30 AM
Actually the mathcad result is correct. In matlab, log means ln, log10 means log.The answer shoehorn gives is for ln.
so the code is
% First declare and initialize a dummy variable
x = 0;

% Now perform the summation:
for i = 0:100
for j = 1:101
x = x + (i / j)^2 + log10(sqrt(j));
end
end

intel2
Oct30-08, 01:50 AM
Thank you to shoehorn and to Emreth ..

intel2
Oct30-08, 02:18 AM
since we r in the topic; how can i plot the attach equation between [-4,4] with a 0.001 interval using matlab

thanks in advance

Emreth
Oct30-08, 02:34 AM
read the help files, this is quite trivial.

for i=1:3000
x(i)=-4+i/1000;
y(i)=-x^2-4*x-2;
end
for i=3000:5000
x(i)=-4+i/1000;
y(i)=abs(x);
end
for i=5000:8000
x(i)=-4+i/1000;
y(i)=2-exp(sqrt(x-1));
end
plot(x,y);

intel2
Oct30-08, 03:20 AM
Tip of the Hat to Emreth ..

the way u wrote x(i) ,, is smart... once again thanks