University of Essex

Winter in Colchester Land, Essex County

Tari Bali

Balinese dance is a very ancient dance tradition that is part of the religious and artistic expression among the Balinese people of Bali island, Indonesia. Balinese dancers express the stories of dance-drama through the bodily gestures including gestures of fingers, hands, head and eyes

Math Conference

I am a math teacher, bring my students to any math conferences

Lesehan Pagi

Sajian Makanan Khas Solo dengan Sajian Lesehan di Area Stadion Manahan Surakarta

Bale Ranti

Kuliner Khas yang Asri dengan View Pegunungan di Kabupaten Karanganyar, arah ke Tempat Wisata Tawangmangu

Rabu, 17 Mei 2017

Bring Students to the Mathematics Conferences

As a supervisor, I  encourage my students to attend academic forums to meet people from other different area from them. This, for instance, can be realize it through joining  both national and international conferences. Such activities are very important to share our thought and knowledge to other people and to get feedbacks to improve our research.


Other reasons are,  they can get a certificate as a speaker and use it for their job in the future. They might also meet some experts from other universities, and even from abroad, so that they might get an offer to continue their study in there for free. Another thing, they will get experience to present with audiences who might not be form their interest area, so they have to make the audience understand. And this is not easy to do it. What we learn from this is one day, when they got job , they have to be able to deal with people who are from different academic background.


This time, me and my students attended Mathematics National Conference in IAIN Syeikh Nurjati, Cirebon. It took place in a hotel called De Verse Hotel Cirebon. The topic of the conference was Using Big Data in Education, which is one line with our research.

I opened our own presentation with some motivations of our research, before my student, Annisa Savitri presented her own research in detail. Our general topic was till about Lanczos algorithm for solving systems of linear equations with high dimensions, particularly, detecting how breakdown occurs in that algorithm.

Annisa is now on the fourth year in Math department, and she is a talented student who works hard for her research. Her contribution in our research is incredibly great as a foundation of other student projects.
Besides Annisa, there are three other students who have been working on papers, at least two papers, and will send them to an International Conference in Malang by next August 2017.

Keep it up my students !

Selasa, 09 Mei 2017

Abram : Aku anak Indonesia atau Inggris ?

Tulisan ini untuk mengenang beberapa tahun yang lalu saat dia baru beberapa saat menginjakan kakinya di negeri Ratu Elizabeth II.


My lovely boy... It was just few months after being a new comer in the UK ... He didn't know anything about either Indonesia or UK hehe, he just knows that there are some people around him giving him love , making him always comfortable heheh...

Love you Abram..

Senin, 08 Mei 2017

The Three Genres of Balinese Dance

Balinese dance is a very ancient dance tradition that is part of the religious and artistic expression among the Balinese people of Bali island, Indonesia. Balinese dance is dynamic, angular and intensely expressive. Balinese dancers express the stories of dance-drama through the bodily gestures including gestures of fingers, hands, head and eyes.

The three genres includes Wali (sacred dances), Bebali (semi-sacred dances) and Balih-balihan (dances for entertainment purposes). The Balinese dance has been proposed since 2011, and officially recognized in 2015.


The three genres are represented by nine dances, which describes its function and living tradition in Balinese community, they are:

Wali Sacred Dances
  1. Rejang (Klungkung District). Sacred ceremonial dance by a young women in traditional ceremonial dress,
  2. Sanghyang Dedari (Karangasem District). Sacred trance dance to counteract negative supernatural forces. Performed by two young girls.
  3. Baris Upacara (Bangli District) religious dances conveying heroic spirit danced by even numbers of male dancers.
Bebali Semi sacred Dances
  1. Topeng Sidhakarya/Topeng Pajegan (Tabanan District). Performed by masked dancers to neutralize the evil spirits.
  2. Gambuh dance drama (Gianyar District). Formerly royal theatrical performance, now accompaniment to ceremonies, by 25-40 dancers.
  3. Wayang Wong dance drama (Buleleng District). Combines dance, epic drama and music.
Balih-balihan Entertainment Dances
  1. Legong Kraton (Denpasar City). Exquisitely beautiful dance by 2 or 3 girls. Developed from Sanghyang Dedari, and Gambuh.
  2. Joged Bumbung (Jembrana District). A popular social dance by couples, during harvest season or on important days.
  3. Barong Ket "Kuntisraya" (Badung District). Represents a fight between two mythological characters, Barong in the form of a lion symbolizing goodness and Rangda, an evil witch.

The strengths of Math Sciences Dept - University of Essex

Maths at Essex has a broad reach. From exploring the economic impact of cow social networks to the mathematical modelling of brain evolution to improve patient care; from solving scheduling problems at the Port of Felixstowe to leading the data revolution at the heart of London’s “Tech City” and the University’s pioneering work on Big Data – our research explores issues that have a real impact on people’s everyday lives and the world around us.

Maths graduates are always in demand due to the wide range of employers seeking their highly valued skills. Our degrees in mathematics, statistics, actuarial science and data science provide you with a fantastic platform to enter a range of interesting sectors. As a growing and influential department, we still make sure our staff and students know each other personally – we are a true academic family.

Our strengths

  • Ranked among the top 30 universities for Mathematics in the UK according to the Times Good University Guide 2017
  • 89.7% of our students are employed in graduate level work or study 6 months after graduating (DLHE survey 2015/16)
  • Free language courses, study abroad and placement year opportunities
  • Placement opportunities and industry links, including Aviva, Profusion, Mondaq, AXA and Buck Consultants
  • A true community of students, staff, alumni and friends

Selasa, 02 Mei 2017

Implementasi Algoritma LANCZOS Menggunakan Matlab 2016

Algortima Lanczos

Program Matlab berikut ini berisi kode sumber dan contoh yang digunakan untuk Implementasi algoritma Lanczos. Dalam M-file nya terdiri dari algoritma Lanczos yang dapat digunakan untuk mencari nilai eigen dan vektor eigen dari matriks persegi.

Kode sumber dan file dalam program  ini tercantum di bagian file proyek, pastikan apakah kode sumber yang tercantum sesuai dan memenuhi kebutuhan Anda, karena bisa jadi Anda membutuhkan teknik yang sedikit berbeda.

Selamat mencoba!

% ----------- Lanczos ALgorithm  for Symmetric and Unsymmetric RK ----

function [PI,V,D]=lanczos_algorithm(RK)

r0=(ones(size((RK),1),1))/sqrt(length(RK));
beta0=norm(r0);
beta=zeros(length(RK),1);
r=zeros(length(RK),length(RK));
alpha=zeros(length(RK),1);
% PI=zeros(length(RK),length(RK));
q=zeros(length(RK),length(RK));         % for storage of Lanczos vectors


% U=zeros(length(RK),1);
% --------------- Initial data for Lanczos Unsymmetric method -------------

p1=(ones(size((RK),1),1))/sqrt(length(RK));
P=zeros(length(RK),length(RK));
Q1=(ones(size((RK),1),1))/sqrt(length(RK));
Q=zeros(length(RK),length(RK));
S=zeros(length(RK),length(RK));
p0=0;
Q0=0;
t=0;
gama=zeros(length(RK),1);
% -------------------- ----------------------------------------------------
if (RK==RK') 
    disp('-----------------------------')
    disp(':correlation matrix is symmetric')
    disp('-----------------------------')
    c=1;
else
    disp('-----------------------------')
    disp(':correlation matrix is unsymmetric ')
    disp('-----------------------------')
    c=0;
end
b1=1;
q0=0;
% PI(1,:)=[];
% PI(:,1)=[];
% while(tracepi/traceRK<=e)
if c==1
    disp('-----------------------------')
    disp(':Symmetric Lanczos Algorithm')
    disp('-----------------------------')
    % ----------------Symmetric Lanczos Algorithm -------------------
    for k=1:1:length(RK)                
        if k==1                             % Calculations of symmetric matrix begin
            q(:,k)=r0/beta0;
        else
            q(:,k)=r(:,k-1)/beta(k-1);
        end
            U=RK*q(:,k);
            if k==1
                r(:,k)=U-q0*beta0;
            else
                r(:,k)=U-q(:,k-1)*beta(k-1);
            end
            alpha(k)=q(:,k)'*r(:,k);
            r(:,k)=r(:,k)-alpha(k)*q(:,k);
            sume=0;
    for k1=k:1:1                                     % Reorthogonalization
        sum1=sume+q(:,k1)*(q(:,k1)'*r(:,k));
        sume=sum1;
    end
    r(:,k)=r(:,k)-sum1;
    beta(k)=normest(r(:,k));                           % 2-norm 
%     k=k+1;
    end
% ---------------- End of calculations of symmetric matrix -----------

% ------------------ Unsymmetric Algorithm ------------------------
elseif c==0 
    disp('-----------------------------')
    disp(':Unsymmetric Lanczos Algorithm')
    disp('-----------------------------')
    s0=p1;r0=Q1;
    while (t<=length(RK))      % Unsymmetric Algorithm : (sum(r0)~=0)||(sum(s0)~=0)||(s0'*r0~=0)||
        if t==0
            beta0=normest(r0);
            gama0=(s0'*r0)/beta0;
            Q(:,t+1)=r0/beta0;
            P(:,t+1)=s0/gama0;
        elseif t>0
            beta(t)=normest(r(t));
            gama(t)=(S(:,t)'*r(:,t))/beta(t);
            Q(:,t+1)=r(:,t)/beta(t);
            P(:,t+1)=S(:,t)/gama(t);
        end
        t=t+1;
        alpha(t)=P(:,t)'*RK*Q(:,t);
        if t==1
        r(:,t)=(RK-alpha(t)*eye(length(RK)))*Q(:,t)-gama0*Q0;
        S(:,t)=(RK-alpha(t)*eye(length(RK)))'*P(:,t)-beta0*p0;
        elseif t>1
            r(:,t)=(RK-alpha(t)*eye(length(RK)))*Q(:,t)-gama(t-1)*Q(:,t-1);
            S(:,t)=(RK-alpha(t)*eye(length(RK)))'*P(:,t)-beta(t-1)*P(:,t-1);
        end
        r0=r(:,t);
        s0=S(:,t);
        if sum(r0)==0 || sum(s0)==0 || sum(r0)==0 && sum(s0)==0
            disp('---------------------------------')
            disp('1:either r0 or so or both is zero')
            disp(':breakdown occured')
            disp('---------------------------------')
            c=2;
            break;
        elseif sum(r0)~=0 && sum(s0)~=0 && (s0'*r0==0)
            disp('-------------------------------------')
            disp(':breakdown occured')
            c=2;
            disp(':there is no information about eigen values of tridiagonal matrix')
            disp(':use Lanczos look ahead algorithm to cure breakdown')
            disp('-----------------------------------------------------')
            break;
        end
    end
    if s0'*r0==0 || sum(r0)==0 || sum(s0)==0
%         cl=2;
        disp('-----------------------------')
        disp(':A Look ahead Lanczos Algorithm')
        disp('---- LAL ---------------------')
         % Initialization
%         Pl=zeros(length(RK),length(RK));
%         Ql=zeros(length(RK),length(RK));
%         Beta=zeros(length(RK),1);
        Gama=zeros(length(RK),1);
        B=zeros(length(RK),1);
        Alpha=zeros(length(RK),1);
%         u=1;
        z=zeros(length(RK),1);
        z(1)=1;
%         L=1;
        L=1+size((p0),1);
        R=zeros(length(RK),length(RK)+1);
        Sl=zeros(length(RK),length(RK)+1)';
        R(:,L)=(ones(length(RK),1)); %/sqrt(length(RK));
        Sl(L,:)=(ones(length(RK),1))'; %/sqrt(length(RK));
        ql=zeros(length(RK),length(RK));
        pl=zeros(length(RK),length(RK));
        Rn=zeros(length(RK),1);
        Sn=zeros(length(RK),1);
        w=Sl(L,:)*R(:,L);
        tol=0.0001;
% ------------------------ Look Ahead Lanczos Algorithm -----------------
        for I=1:1:length(RK)
                       % s': variable s is not designated as s'
            if I==1                      % but the values of s are transposed(row.and col.are interchanged)
            R(:,L+1)=RK*R(:,L)-q0*z(I)*w; % This mehtod is maintained throughout LAL algorithm  
            Sl(L+1,:)=(Sl(L,:))*RK-w*p0';               % without transpose
            else                                        % this consideration also holds for P
                R(:,L+1)=RK*R(:,L)-ql(I-1)*z(I)*w;
                Sl(L+1,:)=Sl(L,:)*RK-w*pl(I-1);
            end
            theta=Sl(L,:)*R(:,L+1);                % needed inner products
            wb=Sl(L+1,:)*R(:,L+1);
%             Rn(L)=norm()
            if L==2
            pi1=w/((norm(R(:,L)))*norm(Sl(L,:)));
            else
                pi1=w/(Rn(I-1)*Sn(I-1));
            end
            pi2=0;
            if theta==0
                if abs(pi1)<tol && pi2<tol      % test for failure
                    disp('-----------------------------')
                    dip(':both angles are less than tol')
                    disp(':algorithm will terminate without having any information about Lanczos vectors')
                    disp('------------------------------------------------------------------------------')
                    break;
                end
            else
                tau1=w/theta;
                tau2=wb/theta;
                if L==2
                rnb1=sqrt(((norm(R(:,L+1)))^2)-(2*tau2*(R(:,L)'*R(:,L+1)))+(tau2^2*norm(R(:,L))^2));
                snb=sqrt((norm(Sl(L,:)')^2)-2*tau1*(Sl(L,:)*Sl(L+1,:)')+(tau1^2)*norm(Sl(L+1,:)')^2);
                psi1=theta/(norm(R(:,L))*norm(Sl(L+1,:)));
                
                else
                    rnb1=sqrt(((norm(R(:,L+1)))^2)-(2*tau2*(R(:,L)'*R(:,L+1)))+(tau2^2*Rn(I-1)^2));
                    snb=sqrt((Sn(I-1)^2)-2*tau1*(Sl(L,:)*Sl(L+1,:)')+(tau1^2)*norm(Sl(L+1,:)')^2);
                    psi1=theta/(Rn(I-1)*norm(Sl(L+1,:)));
                end
                psi2=(w*tau2-theta)/(rnb1*snb);
                pi2=min(abs(psi1),abs(psi2));
            end
            biasf=0;         % single step is assumed
            if (abs(pi1))>=((biasf)*pi2);
                disp('-----------------------------------------------------------------')
                disp(':LAL reduces to standard Lanczos algorithm from this point onwards')
                disp('------- single step ----------------------------------------------')
                if L==2
                beta1=norm(R(:,L))*sqrt(pi1);
                else
                    beta1=Rn(I-1)*sqrt(pi1);
                end
                G1=w/beta1;
                ql(:,I)=R(:,L)/beta1;
                pl(I,:)=(Sl(L,:))/G1;
                Gama(I)=z(I)*G1;
                B(I)=beta1;
                R(:,L+1)=R(:,L+1)/beta1;                    % form new residuals
                Sl(L+1,:)=Sl(L+1,:)'/G1;
                Alpha(I)=1/tau1;
                R(:,L+1)=R(:,L+1)-ql(:,I)*Alpha(I);     % biorthogonalization
                Sl(L+1,:)=Sl(L+1,:)-Alpha(I)*pl(I,:);
                if L==2
                Rn(I)=sqrt((norm(R(:,L+1))^2)-(2*Alpha(I)*R(:,L)'*R(:,L+1))+(Alpha(I)^2)*norm(R(:,L))^2)/beta1;
                Sn(I)=sqrt(norm(Sl(L+1,:)')^2-2*Alpha(I)*Sl(L,:)*Sl(L+1,:)'+(Alpha(I)^2)*norm(Sl(L,:)')^2)/G1;
                else
                    Rn(I)=sqrt((norm(R(:,L+1))^2)-(2*Alpha(I)*R(:,L)'*R(:,L+1))+(Alpha(I)^2)*Rn(I-1)^2)/beta1;
                    Sn(I)=sqrt(norm(Sl(L+1,:)')^2-2*Alpha(I)*Sl(L,:)*Sl(L+1,:)'+(Alpha(I)^2)*Sn(I-1)^2)/G1;
                end
                w=(wb/w)-Alpha(I)^2;
                z(I+1)=[1];
            end                 % end of calculations for single step
            L=L+1;
        end
    end
% ------------------ Unsymmetric Lanczos Algorithm ------------------------             
end
e=0.995;
tracePI=0;
traceRK=1;
f=1;
% PI=zeros(f,f);
while ((tracePI/traceRK)<=e)          % termination, i.e.if eigen values of PI  
    PI=zeros(f,f);
    for w=1:1:f                     % are approximately equal to eig(RK).
        for l=1:1:f
            if w==l
                if c==2
                    PI(w,l)=Alpha(w);
                else
                PI(w,l)=alpha(w);
                end
            elseif w==(l+1) && l==(w-1)
                if c==2 
                    PI(w,l)=B(l);
                else
                    PI(w,l)=beta(l);
                end
            elseif l==w+1 && w==l-1 
                if c==1
                PI(w,l)=beta(w);
                elseif c==0 
                    PI(w,l)=gama(w);
                elseif c==2 
                    PI(w,l)=Gama(w);
                end
            end
        end
    end
    [vrk,drk]=eig(RK);
    [vpi,dpi]=eig(PI);
    tracePI=sum(diag(dpi));                  % sum of eigen values
    traceRK=sum(diag(drk));
    f=f+1;
    if f==(length(RK)+1)
        disp('-----------------------------')
        disp(':PI is not approximation of RK')
        disp(':no.of iterations are equal to dimensions of RK')
        disp('-----------------------------------------------')
        break;
    end
    
end
[V,D]=eig(PI);

Kamis, 27 April 2017

This tutorial is going to teach You


Have you ever wanted to make a program that you could use to make quizzes? This tutorial is going to teach you how to make both quizzes that have one right answer, like when you're studying for a quiz, or a personality quiz.

Both types of quizzes have a lot of things in common though: both have a question at the top, different answers that you can choose, and a letter or number by each option so you can tell them apart. So we're going to need all of those in our Scratch quizzer.

Go ahead and open a new Scratch. Once you've opened Scratch, you should see a screen

Have you ever wanted to make a program


Have you ever wanted to make a program that you could use to make quizzes? This tutorial is going to teach you how to make both quizzes that have one right answer, like when you're studying for a quiz, or a personality quiz.

Both types of quizzes have a lot of things in common though: both have a question at the top, different answers that you can choose, and a letter or number by each option so you can tell them apart. So we're going to need all of those in our Scratch quizzer.

Go ahead and open a new Scratch. Once you've opened Scratch, you should see a screen

Building a Simple Quiz Game With Scratch

Have you ever wanted to make a program that you could use to make quizzes? This tutorial is going to teach you how to make both quizzes that have one right answer, like when you're studying for a quiz, or a personality quiz.


Both types of quizzes have a lot of things in common though: both have a question at the top, different answers that you can choose, and a letter or number by each option so you can tell them apart. So we're going to need all of those in our Scratch quizzer.

Go ahead and open a new Scratch. Once you've opened Scratch, you should see a screen