Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Elementwise multiplication, function definition

Asked by Ben

Ben (view profile)

on 17 May 2013

Hello Community

I have an issue defining a function where the input is a meshgrid. Somehow there must be an issue with the elementwise multiplication.

Input: [x, y] = meshgrid(linspace(0,400,400),linspace(0,30000,400));

A1 = -8.269000000000000;

m1 = 2.071000000000000;

m2 = 0.239700000000000;

B1 = -13.100000000000000;

n1 = 2.813000000000000;

B2 = -49.960000000000001;

n2 = 18.170000000000002;

z1 = (10^A1*x.^m1*y.^m2+y.*(10^B1*x.^n1+10^B2*x.^n2))*100;

Output:

min(min(z1)) = 188.7492

Conclusion:

The minimal value of z1 is 188.7492. However looking at the equation, z1 should be 0 for x = 0 and y = 0.

Somehow there is a mistake writing the equation oder defining input (x,y)

Can anybody help me?

0 Comments

Ben

Ben (view profile)

Products

2 Answers

Answer by Iman Ansari

Iman Ansari (view profile)

on 17 May 2013
Accepted answer
[x, y] = meshgrid(linspace(0,400,400),linspace(0,30000,400));
A1 = -8.269000000000000;
m1 = 2.071000000000000;
m2 = 0.239700000000000;
B1 = -13.100000000000000;
n1 = 2.813000000000000;
B2 = -49.960000000000001;
n2 = 18.170000000000002;
z1 = (10^A1*x.^m1.*y.^m2+y.*(10^B1*x.^n1+10^B2*x.^n2))*100;
min(min(z1))

1 Comment

Ben

Ben (view profile)

on 17 May 2013

Thank you! You must be a wizard! Have a nice day!

Iman Ansari

Iman Ansari (view profile)

Answer by David Sanchez

David Sanchez (view profile)

on 17 May 2013

Hi, try your code like this:

[x, y] = meshgrid( linspace(0,400,400),linspace(0,30000,400) );
A1 = -8.269000000000000;
m1 = 2.071000000000000;
m2 = 0.239700000000000;
B1 = -13.100000000000000;
n1 = 2.813000000000000;
B2 = -49.960000000000001;
n2 = 18.170000000000002;
AA = 10^A1;
BB = x.^m1;
CC = y.^m2;
z1_1 = AA.*BB.*CC;
DD = 10^B1;
EE = x.^n1;
FF = 10^B2;
GG = x.^n2;
z1_2 = y.*( DD*EE + FF*GG );
z1 = ( z1_1 + z1_2 )*100;

2 Comments

David Sanchez

David Sanchez (view profile)

on 17 May 2013

You will get you zero values along with values close to 0 too.

Ben

Ben (view profile)

on 17 May 2013

Thank you for spending time on my problem! The solution above works very fine an was what I was going for. Have a nice day!

David Sanchez

David Sanchez (view profile)

Contact us