DarkBeam
Global Moderator
Fractal Senior
     
Posts: 2512
Fragments of the fractal -like the tip of it
|
 |
« Reply #15 on: April 15, 2011, 10:42:56 AM » |
|
Images at first 
|
No sweat, guardian of wisdom!
|
|
|
DomJustDom
Forums Newbie

Posts: 9
|
 |
« Reply #16 on: April 15, 2011, 01:04:05 PM » |
|
First of all thanks for all your support. I'm really glad that you all took your time and effort to help me with this. But I'm sorry to say that I made some mistakes with the formulas. I hope this is not to problematic for you. So here the first mistake: The formula table is meant as Z n+1=Z n2+C The square was missing and 2cd is not 2cd, is what I just discovered but -2cd i. I had there a mistake in my own formula table as well. | a= | a2 - b2 | + aC | | bi= | 2ab i - c2 i + d2 i - 2cd i | + biC | | cj= | 2ac j - 2bd j | +bjC | | dk= | 2ad k + 2bc k | +ckC | | | Zn+1= | Zn2 | +C |
The idea behind it is still: i*i=-1 j*j=-i j*i=k So to correct the table i wrote in "Meet+Greet" would look like this: | * | +1 | i | j | k | | +1 | +1 | i | j | k | | i | i | -1 | k | -j | | j | j | k | -i | -i | | k | k | -j | -i | +i |
I hope this is now finally correct. But if you still find a mistake, feel free to post.
|
|
|
|
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
     
Posts: 2512
Fragments of the fractal -like the tip of it
|
 |
« Reply #17 on: April 15, 2011, 04:32:43 PM » |
|
First of all thanks for all your support. I'm really glad that you all took your time and effort to help me with this. But I'm sorry to say that I made some mistakes with the formulas. I hope this is not to problematic for you. So here the first mistake: The formula table is meant as Z n+1=Z n2+C The square was missing and 2cd is not 2cd, is what I just discovered but -2cd i. I had there a mistake in my own formula table as well. | a= | a2 - b2 | + aC | | bi= | 2ab i - c2 i + d2 i - 2cd i | + biC | | cj= | 2ac j - 2bd j | +bjC | | dk= | 2ad k + 2bc k | +ckC | | | Zn+1= | Zn2 | +C |
The idea behind it is still: i*i=-1 j*j=-i j*i=k So to correct the table i wrote in "Meet+Greet" would look like this: | * | +1 | i | j | k | | +1 | +1 | i | j | k | | i | i | -1 | k | -j | | j | j | k | -i | -i | | k | k | -j | -i | +i |
I hope this is now finally correct. But if you still find a mistake, feel free to post. But the formula is very pretty as is, why you wanna mutate? 
|
|
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
DarkBeam
Global Moderator
Fractal Senior
     
Posts: 2512
Fragments of the fractal -like the tip of it
|
 |
« Reply #18 on: April 15, 2011, 04:59:20 PM » |
|
Okay. I tried your "correction" but it pretty much ruins all the effect, producing an awful spiky aspect Attached image. The correction will be an option  Ah... I can't write the formula for yourself so decide by yourself 
|
No sweat, guardian of wisdom!
|
|
|
Jesse
Download Section
Fractal Schemer

Posts: 1013
|
 |
« Reply #19 on: April 15, 2011, 10:21:11 PM » |
|
| a= | a2 - b2 | + aC | | bi= | 2ab i - c2 i + d2 i - 2cd i | + biC | | cj= | 2ac j - 2bd j | +bjC | | dk= | 2ad k + 2bc k | +ckC | | | Zn+1= | Zn2 | +C |
The idea behind it is still: i*i=-1 j*j=-i j*i=k So to correct the table i wrote in "Meet+Greet" would look like this: | * | +1 | i | j | k | | +1 | +1 | i | j | k | | i | i | -1 | k | -j | | j | j | k | -i | -i | | k | k | -j | -i | +i |
I hope this is now finally correct. But if you still find a mistake, feel free to post. Hi, thanks for the correction, still two questions:  The added C component should be ac, bic, cjc and dkc, i guess. But what i really want to know because i am no mathematician: I understand the basic idea, but how do you get the values for the combinations below, does them follow some rules?: i*k=-j j*k=-i k*k=i This question arose when i asked myself how to implement i*j in 3d, if no k is available. So, if there is no strict rule, maybe we need for every new combination another dimension, until such terms becomes nil and can be neglected... Maybe a stupid question, but my basic interest ist also to get something like the holy grail 
|
|
|
|
|
Logged
|
|
|
|
|
Syntopia
|
 |
« Reply #20 on: April 15, 2011, 11:20:09 PM » |
|
i*i=-1 j*j=-i j*i=k I understand the basic idea, but how do you get the values for the combinations below, does them follow some rules?: i*k=-j j*k=-i k*k=i This question arose when i asked myself how to implement i*j in 3d, if no k is available. So, if there is no strict rule, maybe we need for every new combination another dimension, until such terms becomes nil and can be neglected... Maybe a stupid question, but my basic interest ist also to get something like the holy grail  You would probably have to make some assumptions to arive at that multiplication matrix. One assumption could be that multiplication was commutative (A*B=B*A). This would imply the multiplication matrix was symmetric (Notice Quaternion multiplication is not commutative). Another assumption could be that multiplication is asociative: A*(B*C)=(A*B)*C Based on these assumptions you get: i*i=-1 (i*i)*j=-j // multiply by j on the right i*(i*j)=-j // multiplication is associative i*k=-j // use the fact that j*i = i*j = k (commutativity)
j*i=k j*j*i=j*k // multiply by j on the left -i*i=j*k // use j*j = -i j*k=1 // use i*i = -1
j*i=k j*i*j*i = k*k // multiply by j*i on left side, k on right side j*k*i = k*k // i*j = k -i*i = k*k k*k = 1
Notice, that I get j*k=1 instead of -1. (So DomJustDom's system is not associative) You could also impose more constraints on the multiplication operator: for instance, you could require that for every number X, there exists an inverse element Y, such that X*Y=1. This would make it possible to define division. The only four component system satisfying this property, is the Quaternions. And no such system exists for three components. Of course, you do not need division (or associativity, or commutativity) to implement a Mandelbrot-like formula. You could just make up a multiplication table and explore the possibilities.
|
|
|
|
|
Logged
|
|
|
|
DomJustDom
Forums Newbie

Posts: 9
|
 |
« Reply #21 on: April 16, 2011, 12:56:33 AM » |
|
OK, back again. Hey, I really can say this is a way cool Forum, because everybody here is quite helpful and polite. So thanks again. I had a lot to do today, but I'm back. So, I'm not a mathematician and the idea is quite simple. But if someone please would check this table. I worked it out in c++. (Qt to be exact) Since it was almost no effort i coloured the table a little. Hoping the program doesn't make the same mistakes, as the programmer did...  So the final (first) table should look like this: (There is no secret behind it. It's just the idea of inventing a number j that j*j is -i.) | * | 1 | i | j | k | | 1 | +1 | +i | +j | +k | | i | +i | -1 | +k | -j | | j | +j | +k | -i | +1 | | k | +k | -j | +1 | +i |
There are two more tables I want to post. And just to say this, you are all welcome to check it for mistakes.
|
|
|
|
« Last Edit: April 16, 2011, 12:58:51 AM by DomJustDom »
|
Logged
|
|
|
|
Jesse
Download Section
Fractal Schemer

Posts: 1013
|
 |
« Reply #22 on: April 16, 2011, 01:04:45 AM » |
|
You would probably have to make some assumptions to arive at that multiplication matrix. One assumption could be that multiplication was commutative (A*B=B*A). This would imply the multiplication matrix was symmetric (Notice Quaternion multiplication is not commutative). Another assumption could be that multiplication is asociative: A*(B*C)=(A*B)*C Based on these assumptions you get: i*i=-1 (i*i)*j=-j // multiply by j on the right i*(i*j)=-j // multiplication is associative i*k=-j // use the fact that j*i = i*j = k (commutativity)
j*i=k j*j*i=j*k // multiply by j on the left -i*i=j*k // use j*j = -i j*k=1 // use i*i = -1
j*i=k j*i*j*i = k*k // multiply by j*i on left side, k on right side j*k*i = k*k // i*j = k -i*i = k*k k*k = 1
Great Syntopia, thank you very much! So this is straight forward, just non commutativity and/or assoviativity leads to more variations, but i guess a fourth dimension is recommended anyways...
|
|
|
|
|
Logged
|
|
|
|
DomJustDom
Forums Newbie

Posts: 9
|
 |
« Reply #23 on: April 16, 2011, 01:39:05 AM » |
|
Whoof...Okay. It's difficult for me to get all this. To be honest my english is a little weak, and all I did was mathematics at the high school / college. So I have a question depending to this. Did anybody ever hear about such a system? I guess this all would be easier in case somebody just posts a wikipedia-link. Or should I ask / post this somewhere else? By the way, here the next two Tables: | * | a1 | bi | cj | dk | | a1 | + a2 1 | + ab i | + ac j | + ad k | | bi | + ba i | - b2 1 | + bc k | - bd j | | cj | + ca j | + cb k | - c2 i | + cd 1 | | dk | + da k | - db j | + dc 1 | + d2 i |
| an+1 = | + an2 - bn2 + 2cndn | + aC | | bn+1 i = | + 2anbn i - cn2 i + dn2 i | + bC | | cn+1 j = | + 2ancn j - 2bndn j | + cC | | dn+1 k = | + 2andn k + 2bncn k | + dC |
In the end this seems to be the right formula. So please let me know, weather you can hack this into any fractal program. I really would like to see the result! Thanks a lot, Dom
|
|
|
|
« Last Edit: April 16, 2011, 03:25:09 AM by DomJustDom »
|
Logged
|
|
|
|
|
M Benesi
|
 |
« Reply #24 on: April 16, 2011, 06:55:03 AM » |
|
Very squary.... nx=sqr(sx)-sqr(sy)+2*sz*sk; ny=2*sx*sy-sqr(sz)+sqr(sk); nz=2*sx*sz-2*sy*sk; nk=2*sx*sk+2*sy*sz; if (juliaMode) { sx=nx+cr; sy=ny+ci; sz=nz+cj; sk=nk+ck; } else { sx=nx+(pixelr); sy=ny+(pixeli); sz=nz+(pixelj); sk=nk+(pixelk); }
|
|
|
|
|
Logged
|
|
|
|
|
Syntopia
|
 |
« Reply #25 on: April 16, 2011, 08:30:44 AM » |
|
DomJustDom, if you want to try out different schemes you could use Fragmentarium: http://syntopia.github.com/Fragmentarium/Use the following code, and modify the 'mul' function according to how the two numbers multiply: #include "DE-Raytracer.frag" #group Hypercomplex Thing
// Number of fractal iterations. uniform int Iterations; slider[0,16,100] // Breakout distance uniform float Threshold; slider[0,10,100] // Mandel or Julia uniform bool JuliaMode; checkbox[false]
// Quaterion Constant (first three components - only used for Julia) uniform vec3 C123; slider[(-1,-1,-1),(0.18,0.88,0.24),(1,1,1)] // Quaterion Constant (last component) uniform float C4; slider[-1,0.16,1]
vec4 c = vec4(C123,C4); // We don't support 4-component sliders yet...
void init() {}
vec4 mul(vec4 a, vec4 b) { return vec4( a.x*b.x - a.y*b.y - a.z*b.z + a.w*b.w, a.x*b.y + a.y *b.x - a.z*b.w - a.w * b.z, a.x * b.z + a.z*b.x - a.w*b.y -a.y* b.w, a.x*b.w + a.w*b.x + a.y*b.z + a.z*b.y); }
float DE(vec3 pos) { vec4 p = vec4(pos, 0.0); vec4 dp = vec4(1.0, 0.0,0.0,0.0); for (int i = 0; i < Iterations; i++) { dp = 2.0* mul(p,dp); p = mul(p,p) + (JuliaMode ? c : vec4(pos,C4)); float p2 = dot(p,p); orbitTrap = min(orbitTrap, abs(vec4(p.xyz,p2))); if (p2 > Threshold) break; } float r = length(p); return 0.5 * r * log(r) / length(dp); }
Fragmentarium requires a decent GPU (e.g. not an integrated GPU), capable of running GLSL. But you can explore in real-time :-) Btw, the only 4-component systems I know are: http://en.wikipedia.org/wiki/Quaternionhttp://en.wikipedia.org/wiki/Tessarinehttp://en.wikipedia.org/wiki/Coquaternion
|
|
|
|
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
     
Posts: 2512
Fragments of the fractal -like the tip of it
|
 |
« Reply #26 on: April 16, 2011, 10:06:43 AM » |
|
In the end this seems to be the right formula. So please let me know, weather you can hack this into any fractal program. I really would like to see the result! Thanks a lot, Dom No need to hack, because your formula is already in my database, don't you have installed it yet? What you are waiting for? 
|
|
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
Jesse
Download Section
Fractal Schemer

Posts: 1013
|
 |
« Reply #27 on: April 16, 2011, 01:47:32 PM » |
|
I made general formula where the user can specify the combinations of i,j and k. I think many combinations makes no real sense, but still a lot of combinations possible, plus the 4d rotations... 8^8 * 4d rotate - good luck  formula download: http://www.fractalforums.com/index.php?topic=6061.msg28944#msg28944
|
|
|
|
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
     
Posts: 2512
Fragments of the fractal -like the tip of it
|
 |
« Reply #28 on: April 16, 2011, 04:32:33 PM » |
|
Oh no! This is striking Jessie 
|
|
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
|