%% HW2 - 3101 Matlab -- (INSERT NAME and UNI HERE) % Due 11:59pm on Tuesday, March 25th, 2008 %% Goals % Start using matlab as a simple scripting language %% Directions % Please fill in your name at the top of this page and write your answers % under their corresponding question. When you are done, publish this file % to html using File > Publish To HTML (or the command publish('hw1.m', 'html') % and create a new zip file that is labeled with your UNI and homework % number (eg. bs2018-hw1.zip), that contains this original m file, and the % html directory created from publishing the file. Email this file to % cs3101@gmail.com, making sure to include your name, and uni in the subject. %% Note % When I say display a variable I mean display it so the output is labeled % with the variable name, don't use disp, just leave off the semicolon % from the end of the command. %% Help % If you get stuck, type the command doc to pull up the documentation % window, from there it's easy to search for any other commands or % functions you might want to use... %% Problem 1 - Fibonacci numbers and the golden ratio % (http://en.wikipedia.org/wiki/Fibonacci_number) Use a for loop to compute % the first 100 Fibonacci numbers, and store them in a variable called f. % only display the first 10 elements, make sure not to display anything % while you are looping (use a semicolon) %% 1.2 % plot the first 20 Fibonacci numbers, and title your plot. %% 1.3 % (http://en.wikipedia.org/wiki/Golden_ratio) The golden ratio (also known as % phi) is an irrational number that can be found throughout science, art % and architecture since the renaissance... we know that phi is equal to (1 % + sqrt(5)) / 2, however it is also easily expressed as the ratio between % two successive Fibonacci numbers (weird... i know...). use a while loop % to find the first two fibonacci numbers whose ratio approximates phi with % an error less then 0.001, and print out only those two successive % Fibonacci numbers... note: the while loop should terminate after it has % found the first set of Fibonacci numbers whose ratio yields an error less % then 0.001 %% 1.5 % display the exact phi, then display your approximation for phi calculated % above, and then display the absolute value of their difference %% 1.5 % change the display format to long and then display the exact phi, the % approximate phi, and their difference %% 1.6 % change the display format back to short (the default) %% Problem 2 - Exploring the julia set fractals % (http://en.wikipedia.org/wiki/Julia_set) Julia set fractals are very % interesting, and beautiful; they are also not too hard to create in % matlab. first we start with a grid of equally spaced complex numbers, % where the real components vary from -2 to 2, and the imaginary components % vary from -2i to 2i. then for each number in this grid, we recursively % apply a mathematical function to it many times and see how many times % before the complex number becomes bigger then some cutoff value... that % count of how many iterations it takes to blow up determines the color of % that one pixel of the fractal %% 2.1 % first lets start with a matrix of all zeros, so let's set N equal to 10, % and make a new matrix F which is NxN and contains all zeros %% 2.2 % create a variable called x which contains N numbers that are equally % spaced between -2 and 2, display x %% 2.2.1 % how many elements are in x? %% 2.3 % create a variable called z0 which is a matrix of size NxN, such that % element i,j of z0 should equal x(i) + sqrt(-1)*x(j). When we are done % filling z0, it should contain equally spaced complex numbers such that % the real component goes from -2 to 2 horizontally, and imaginary % component goes from -2i to 2i vertically. Display z0. (Extra credit, if % you can make z0 using only 1 line, no loops or semicolons) %% 2.4 % for each element i,j in F, get the initial value of z from the matrix z0 % and then use a while loop and a counter variable to count how many % iterations of applying the function z = z^2 + c causes the absolute value % of z to become bigger then the variable blowup. After you are done, % F(i,j) should equal the number of times you had to apply z = z^2 + c % repeatedly, before abs(z) gets bigger then the blowup parameter. Note: % make sure to put a limit on the number of times the inner while loop can % iterate if abs(z) doesn't blowup. c=0.285+0.01*sqrt(-1) blowup = 200; maxiter = 200; %% 2.5 % display F, and then plot it using imagesc. make sure the axes are set to % image %% 2.6 % Collect all the code from this problem, and put it together as 1 chunk of % code below and set N to be much bigger, like between 100 and 500 %% 2.7 % Make your own fractal! you can change the value for c, or pick a different function % instead of z = z^2 + c, also try picking a colormap that is different % then the default one... pick a setup that you find interesting and % calculate it and plot it below