Exponential Idle: More Weierstrass Matlabbery

So the series of q1 is close to Xn+1 = round(1.8*Xn) starting at n=3, with n=1 => Xn=0, n=2 => Xn=10. (yes, Matlab, blah blah, arrays begin at 1)

The problem is q1(3) = 32.3, which isn’t rounded. If I use rounding, my series, qtest, diverges from the numbers I got out of the game by n=20. My quick and dirty factor of 1.8 probably isn’t correct.

If 32.3 is arbitrarily accurate, 32.3/18=1.7944444…. Now, obviously, that is the part number for the famous TE 1-794444-1, which clearly needs no introduction, but if by pure luck it’s also related to a fraction of some other constant, I don’t know it.

Matlab

I never noticed something in 10+ years.

For arrays in the variable viewer pane, Matlab displays the X values on the vertical axis and the Y values on the horizontal axis.

Create a nxn array. Label it A(n1, n2).

I think of n1 as X and n2 as Y. I think of the array as being A(x, y).

But when I view that array in Matlab, the x values will be indexed vertically on the left side and the y values are indexed horizontally on the top. If I open A(n1, n2) in the variable viewer pane, n1 (what I think of as x) is the vertical dimension and n2 (y) is the horizontal dimension. n1 is across the left, and n2 the top. (Plots are different)

That could be better.

Exponential Idle and the Weierstrass Sine Product

Dangit, Conic. Stop dropping updates late at night. I have to sleep.

Within the first 20 options of n and c1, the peak is n=18, c1=19.

Within the first 500, n=484 c1=311.

Matlabbery:


%Matthew Miller
%1/16/22
%Calculates max qdot for a range of n and c1 values
%to do more I’d have to optimize a time-dependent progression
%I may do that later

%pdot = q1*q2*q
%qdot = m3Factor * s_n(chi)/sin(chi)
%s_n(chi) = chi * PI(k=1:n)(1-(chi/(k*pi))^2)

%==========================================================================
%start fresh

clear c1 n chi sinterm s_n M I qdot n_max c1_max

%==========================================================================
%human entry

dimension = 36;

%not sure what to do with these yet
q1=1;
q2=1;
c1=1;
c2=1;
c3=1;

m1=0; %Milestone upgrade 1 level (0, 1, 2, 3, or 4)
m2=0; %Milestone upgrade 2 level (0 or 1)
m3=1; %Milestone upgrade 3 level (0, 1, 2, or 3)

%==========================================================================
%prelim calculations

n=1:dimension; %X axis
c1=1:dimension; %Y axis

m1Factor = q1^(1+0.01*m1); %precalculate
m2Factor = c3^m2; %precalculate
m3Factor = 3^m3; %precalculate

chi = zeros(dimension,dimension); %preallocate for speed
sinterm = zeros(dimension,dimension); %preallocate for speed
s_n = zeros(dimension,dimension); %preallocate for speed
qdot = zeros(dimension,dimension); %preallocate for speed

%==========================================================================
%generate variables
%Normally I’d do all these with functions, but that’s harder to read

%chi
for n_index=1:length(n) %X
for c1_index=1:length(c1) %Y
chi(n_index,c1_index) = pi.*c1(c1_index).*n(n_index)./(c1(c1_index)+n(n_index)./m3Factor)+1; %x=n, y=c1
end
end

%sin(chi)
for n_index=1:length(n) %X
for c1_index=1:length(c1) %Y
sinterm(n_index,c1_index) = sin(chi(n_index,c1_index));
end
end

%s_n(chi)
for n_index=1:length(n) %X
for c1_index=1:length(c1) %Y
s_n(n_index,c1_index) = chi(n_index,c1_index);
for k = 1:length(n_index) %Big Pi
s_n(n_index,c1_index)=s_n(n_index,c1_index)*(1-(chi(n_index,c1_index)/(k*pi))^2);
end
end
end

%qdot(chi)
for n_index=1:length(n) %X
for c1_index=1:length(c1) %Y
qdot(n_index,c1_index)=s_n(n_index,c1_index)/sinterm(n_index,c1_index);
end
end

%==========================================================================
%find max qdot

[M,I] = max(qdot(:));
[n_max, c1_max] = ind2sub(size(qdot),I); %Maximum values

%waterfall(qdot(1:10,1:10));


I bounce between writing concise, readable, and optimized code. Text file here.

Edit: Newer txt file here. Also: plotter.