Asked by Adam Schlei
on 23 Mar 2019 at 0:13

function Senior_Project_code

%input values

y = 4;

n = 1;

L = 3;

%equations

%z=17;

a=L/(2*n);

x = 0:1:L;

E = 808/(y^2);

%c = atan(abs((x-a(2*i-1)))/y)*(180/3.14);

%s = (-0.0000000667*atan(abs((x-a(2*i-1)))/y)*(180/3.14).^4 ...

% + 0.0000157209*atan(abs((x-a(2*i-1)))/y)*(180/3.14).^3 ...

% - 0.0010081511*atan(abs((x-a(2*i-1)))/y)*(180/3.14).^2 ...

% + 0.0020817855*atan(abs((x-a(2*i-1)))/y)*(180/3.14) ...

% + 0.9991821678);

Axx(x+1) = 0;

for k = 1:n

Axx(x+1) = Axx(x+1) + E* ...

(-0.0000000667*(atan(abs((x-a*(2*k-1)))/y)*(180/3.14)).^4 ...

+ 0.0000157209*(atan(abs((x-a*(2*k-1)))/y)*(180/3.14)).^3 ...

- 0.0010081511*(atan(abs((x-a*(2*k-1)))/y)*(180/3.14)).^2 ...

+ 0.0020817855*(atan(abs((x-a*(2*k-1)))/y)*(180/3.14)) ...

+ 0.9991821678);

end

Ax = sum(Axx)/(L+1); %can I redo this to match my other equation?

display (Axx,'Brightness Values');

display (Ax,'Average Brightness');

end

Any help redoing Ax to match my above summation with i=1, to z-2... would be much appreciated.

Coding should be in for,if, then, and, or....type statements if possible.

Answer by darova
on 23 Mar 2019 at 13:52

Accepted Answer

Maybe a little bit clearer version:

y= 7.5, n=16, L=16 result: 118.22

y= 4, n=1, L=3 result: 46.31

function main

% input values

y = 4;

L = 3;

z = 17;

n = 1;

av = 0;

for i = 1:z-2

x = L/(z-1)*i;

av = av + s(x,y,n,L);

end

x = L/(2*z-2)*i;

av = av + s(x,y,n,L) + s(L-x,y,n,L);

av = av/z;

display('Average Brightness: '), av

end

function result = s(x,y,n,L)

% equations

E = 808.01/y^2.008;

a = L/(2*n);

c = @(i) atand( abs(x-a*[2*i-1])/y );

coeff = [

-0.0000000667

0.0000157209

-0.0010081511

0.0020817855

0.9991821678];

S = 0;

for i = 1:n

for j = 1:5

S = S + coeff(j)*c(i)^(5-j);

end

end

result = E*S;

end

Adam Schlei
on 23 Mar 2019 at 15:26

Thats awesome. Thanks.

Adam Schlei
on 23 Mar 2019 at 18:23

found the error. when x = L/(2*z-2)*i get rid of the i and it comes out prefect!

Sign in to comment.

Answer by Walter Roberson
on 23 Mar 2019 at 2:28

%input values

y = 4;

n = 1;

L = 3;

z = 17;

%equations

c = @(x, y, n, l, i) atand(abs((x-l./(2.*n).*(2*i-1)))./y);

p = @(X) -0.0000000667*X.^4 + 0.0000157209*X.^3 - 0.0010081511*X.^2 + 0.0020817855*X + 0.9991821678;

s = @(x, y, n, l, c) sum(p(c(x(:), y, n, l, 1:n)),2);

zs = @(z, y, n, l, c) sum( s(l./(z-1).*(1:z-2), y, n, l, c), 1);

result = @(z, y, n, l, c) (zs(z, y, n, l, c) + s(l./(2*z-2), y, n, l, c) + s(l - l./(2*z-2), y, n, l, c)) ./ z;

result(z, y, n, L, c)

However the result is nowhere near 111

Adam Schlei
on 23 Mar 2019 at 2:56

When y= 7.5, n=16, and L=16 the Average or Ax equation should equal Ax=111.99

When y= 4, n=1, and L=3 the Average or Ax equation should equal Ax=44.94

not sure why you say L=3 then use a lower case l in your equation. Doesn't this screw things up? Also where does big X come from? That should be the tangent function or what c equals. Doesn't the use of (i) in the equation mean imaginary? This is why I change i to k. Not sure if that is a thing, but I'm not sure what your doing here with no explanation. It would be one thing if it worked, but Nice try anyways though.

Walter Roberson
on 23 Mar 2019 at 3:09

p = @(TEMPORARY_VARIABLE) -0.0000000667*TEMPORARY_VARIABLE.^4 + 0.0000157209*TEMPORARY_VARIABLE.^3 - 0.0010081511*TEMPORARY_VARIABLE.^2 + 0.0020817855*TEMPORARY_VARIABLE + 0.9991821678;

not sure why you say L=3 then use a lower case l in your equation. Doesn't this screw things up?

No. You need to learn about dummy parameters. For example

s = @(x, y, n, l, c) sum(p(c(x(:), y, n, l, 1:n)),2);

means the same thing as

s = @temporary_function_s;

function result = temporary_function_s(x, y, n, l, c)

p = evalin('caller', 'p');

result = sum(p(c(x(:), y, n, l, 1:n)),2);

end

which in turn means the same as

s = @temporary_function_s;

function result = temporary_function_s(First_Parameter, Second_Parameter, Third_Parameter, Fourth_Parameter, Fifth_Parameter)

p = evalin('caller', 'p');

result = sum(p(Fifth_Parameter(First_Parameter(:), Second_Parameter, Third_Parameter, Fourth_Parameter, 1:Third_Parameter)),2);

end

... almost. With some small details about exactly when p is imported into the function.

Adam Schlei
on 23 Mar 2019 at 3:48

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 4 Comments

## madhan ravi (view profile)

Direct link to this comment:https://ch.mathworks.com/matlabcentral/answers/451824-how-do-is-code-this-last-summation-i-was-able-to-do-the-first-one-but-have-no-clue-how-to-finish-i#comment_684574

## Walter Roberson (view profile)

Direct link to this comment:https://ch.mathworks.com/matlabcentral/answers/451824-how-do-is-code-this-last-summation-i-was-able-to-do-the-first-one-but-have-no-clue-how-to-finish-i#comment_684587

## Adam Schlei (view profile)

Direct link to this comment:https://ch.mathworks.com/matlabcentral/answers/451824-how-do-is-code-this-last-summation-i-was-able-to-do-the-first-one-but-have-no-clue-how-to-finish-i#comment_684589

## Adam Schlei (view profile)

Direct link to this comment:https://ch.mathworks.com/matlabcentral/answers/451824-how-do-is-code-this-last-summation-i-was-able-to-do-the-first-one-but-have-no-clue-how-to-finish-i#comment_684591

Sign in to comment.