Asked by Adam Schlei
on 23 Mar 2019

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

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

Thats awesome. Thanks.

Adam Schlei
on 23 Mar 2019

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

%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

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

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

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.