Quantcast
Channel: MATLAB Central Newsreader - tag:"real option"
Viewing all articles
Browse latest Browse all 10

meshgrid 3d 6000*6000 matrix can't be shown. is the problem in my hardware or my code?

$
0
0
Hi Everyone i need some help, currently working on my final project about real option pricing, everything work well (i use some a little value for partition) until my lecture ask me to make the partition value smaller.... my calculation is okay but when I try to plot it i got problems
1. figure 1 & 2 did not show up, only the colorbar and the meshgrid 3d did not shown. how to resolve it?
2. figure 3 shown properly the mesh grid, but because of the small partition it make the colormap did not shown properly so it can be said only black colour is shown in 3d object. how to change the range colour?

I use matlab for Mac OS X R2013 and mac mid 2012 non-retina, with RAM 4, hdd 500,
is the problem because of my hardware ? because i need to run 6000 x 6000 matrix and it need almost 2 hours to process/iteration(trial)~(I input 10 trial) when i saw the task manager my RAM space 3.99 is used


here they are my code:

repeat=1;
while repeat==1
    close all
    clc;
    clear;
    warning off all
    format longG
:
:
:
:
    methodnames=[cellstr(' FTCS');cellstr(' BTCS');cellstr(' Crank-Nicolson')];
%========================================================================================================================================|
% PLOTTING
% UNDEVELOPED VALUE
%========================================================================================================================================|
%pilihan penamipilan plot atau tidak
    disp('Tampilkan plot?');
    disp('0 -> Tidak.');
    disp('1 -> Ya.');
    varplot=2;
    while varplot<0 || varplot>1
        varplot=input('[0-1] = ');
        if varplot<0 || varplot>1
            disp('Mohon masukkan pilihan dengan benar!');
        end
      fprintf('====================================================\n')
    end
%========================================================================================================================================|
%pendefinisian warna yang akan digunakan
    colorss=['c';'m';'y';'k';'b';'g';'r'];
%========================================================================================================================================|
%pemilihan penampilan semua plot atau hanya sebagian plot dari uji
    switch varplot
        case 1
            disp('Tampilkan semua?');
            disp('0 -> Tidak, hanya beberapa.');
            disp('1 -> Ya.');
            varplot1=2;
            while varplot1<0 || varplot1>1
                varplot1=input('[0-1] = ');
                if varplot1<0 || varplot1>1
                    disp('Mohon masukkan pilihan dengan benar!');
                end
                fprintf('====================================================\n')
            end
%========================================================================================================================================|
%pilihan jumlah uji yang akan di plot
            switch varplot1
                case 1
                    trpl=trial;
                    trppl(1:trial)=1:trial;
                otherwise
                    fprintf('Masukkan jumlah uji yang ingin diplot = ');
                    trplot=0;
                    while trplot<1
                        trplot=input('');
                        if trplot<1
                            disp('Mohon masukkan jumlah uji dengan benar!');
                        end
                        fprintf('====================================================\n')
                    end
%========================================================================================================================================|
%pemilihan uji ke- yang di plotkan
                    for trp=1:trplot
                        trpp(trp)=0;
                        while trpp(trp)<1
                            fprintf('Masukkan urutan uji ke-%d yang ingin diplot = ',trp);
                            trpp(trp)=input('');
                            if trpp(trp)<1
                                disp('Mohon masukkan nomor urutan uji dengan benar!');
                            end
                        end
                        fprintf('====================================================\n')
                    end
                    trpl=trplot;
                    trppl=trpp;
            end
%========================================================================================================================================|
%========================================================================================================================================|
% PLOTTING
% WAITING VALUE
%========================================================================================================================================|
%penentuan jumlah yang akan di plotkan
            for tr=1:trpl
                if tr<2
                    fprintf('====================================================\n')
                    trialwv=0;
                    while trialwv<1
                        trialwv=input('Masukkan jumlah banyaknya harga dari \nWaiting Value yang akan Anda plot = ');
                        if trialwv<1
                            disp('Jumlah yang Anda masukkan terlalu kecil, \nsilakan ulangi!');
                        end
                     end
%========================================================================================================================================|
%pada harga berapa yang akan di plotkan (akan disesuaikan dari partisi ke-)
                    for wv=1:trialwv
                        inputwv(wv)=Vmin-1;
                        while inputwv(wv)<Vmin || inputwv(wv)>PMax
                            fprintf('Masukkan Harga ke-%d yang akan di plot \nuntuk waiting value [USD%0.2f - USD%0.2f] = ',wv,Vmin,PMax);
                            inputwv(wv)=input('');
                        end
                        nilaiwv(wv)=cellstr(sprintf('Harga Opsi pada harga USD%d',inputwv(wv)));
                     end
                     fprintf('====================================================\n')
                end
%========================================================================================================================================|
%mulai plot figure undeveloped Value
                for j=1:3
                        figure('Name',sprintf('Figure %d Trial %d',j,trppl(tr)),'NumberTitle','off')
                        set(gcf,'renderer','zbuffer');
                        [X Y]=meshgrid(VV,0:w:T);
                        Z=MatrixIterF{trppl(tr),j};
                        surf(X,Y,Z);
                        switch j
                            case 1
                                colormap(hot)
                            case 2
                                colormap(summer)
                            case 3
                                colormap(winter)
                        end
                        colorbar
                        title(strcat('Plot Undeveloped Value Project menggunakan metode ',methodnames(j),sprintf(' uji ke-%d.',trppl(tr))))
                        xlabel('Harga Minyak Mentah di Pasar (VV)')
                        ylabel('t=0..T')
                        zlabel('Hasil Undeveloped Value Proyek (F)')
                        grid on
                end
%========================================================================================================================================|
%Mulai plot figure Waiting value
                for j=4:6
                    figure('Name',sprintf('Figure %d Trial %d',j,trppl(tr)),'NumberTitle','off')
                    set(gcf,'renderer','zbuffer');
                    title(strcat('Plot harga opsi menggunakan metode ',methodnames(j-3),sprintf(' uji ke-%d.',trppl(tr))))
                    xlabel('t=0..T')
                    ylabel('Harga Opsi (Waiting Value) Project')
                    hold on
                    for wv=1:trialwv
                        if (wv>length(colorss))
                            if (mod(wv,length(colorss))==1)
                                x=1;
                            else
                                x=x+1;
                            end
                        else
                            x=wv;
                        end
                        wvi=(round(((inputwv(wv))-Vmin)/p))+1;
                        plot(0:w:T,MatrixIterWait{trppl(tr),j-3}(wvi,:),colorss(x));
                    end
                    legend(nilaiwv,'Location','NorthEast');
                    hold off
                    grid on
                end
%========================================================================================================================================|
%========================================================================================================================================|
% PLOTTING T TERTENTU
% Nilai F(V,t) grafiks Tahunan
%========================================================================================================================================|
% Untuk membuat bagian dari legend
                for j=1:(T+1)
                    i=(j-1);
                    nilait(j)=cellstr(sprintf('Nilai di t=%d',i));
                end
%========================================================================================================================================|
% Memulai iterasi plot t tertentu
                for y=7:9
                    figure('Name',sprintf('Figure %d Trial %d',y,trppl(tr)),'NumberTitle','off')
                    set(gcf,'renderer','zbuffer');
                    title(strcat('Plot di t tertentu menggunakan metode ',methodnames(y-6),sprintf(' uji ke-%d.',trppl(tr))))
                    xlabel('Harga Minyak Mentah di Pasar (VV)')
                    ylabel('Nilai Undeveloped Proyek (F)')
                    hold on
                    for j=1:(T+1)
                        if (j>length(colorss))
                            if (mod(j,length(colorss))==1)
                                x=1;
                            else
                                x=x+1;
                            end
                        else
                            x=j;
                        end
                       tj(j)=round((((T+1)-j)-tmin)/w);
                       plot(VV,MatrixIterF{trppl(tr),y-6}(:,(tj(j)+1)),colorss(x));
                    end
                    legend(nilait,'Location','NorthWest');
                    hold off
                end
            end
%========================================================================================================================================|
%========================================================================================================================================|
% PEMBAGIAN UNTUK BARIS DAN KOLOM
% HARGA DAN WAKTU
%========================================================================================================================================|
        otherwise
            for j=1:(T+1)
                tj(j)=round((((T+1)-j)-tmin)/w);
            end
        end
%========================================================================================================================================|
%pembagian posisi partisi harga
    fprintf('\n');
    disp('price line');
    for ss=1:length(VV)
        varv(ss,1)=VV(ss);
        varv(ss,2)=(round(((VV(ss))-Vmin)/p))+1;
        if (varv(ss,1)<100)
            fprintf('%0.2f %0.2f\n',varv(ss,1),varv(ss,2));
        else
            fprintf('%0.2f %0.2f\n',varv(ss,1),varv(ss,2));
        end
    end
%========================================================================================================================================|
%pembagian posisi partisi waktu
    fprintf('\n');
    disp('year coloumn');
    for ss=1:(T+1)
        vart(ss,1)=ss-1;
        vart(ss,2)=tj(ss)+1;
        fprintf('%0.2f %0.2f\n',vart(ss,1),vart(ss,2));
    end
%========================================================================================================================================|
% PLOTTING SENSITIVITAS
% Nilai F(V,t) Terhadap parameter yang berubah-ubah
%========================================================================================================================================|
    fprintf('====================================================\n')
    trialsv=0;
    while trialsv<1
        trialsv=input('input number of sensitivity \nthat will be plotted = ');
        if trialsv<1
            disp('the number is too small, \nre-input please!');
        end
    end
%========================================================================================================================================|
%input price
    for sv=1:trialsv
        fprintf('====================================================\n')
        inputv(sv)=Vmin-1;
        while inputv(sv)<Vmin || inputv(sv)>PMax
            fprintf('Input price ke-%d that \nwill be plotted [USD%0.2f - USD%0.2f] = ',sv,Vmin,PMax);
            inputv(sv)=input('');
        end
%========================================================================================================================================|
%input year% fprintf('====================================================\n')
        inputt(sv)=tmin-1;
        while inputt(sv)<tmin || inputt(sv)>T
            fprintf('year ke-%d that \nwill be plotted [%d-%d] = ',sv,tmin,T);
            inputt(sv)=input('');
        end
%========================================================================================================================================|
%change from input to partition location
        ti(sv)=tj(inputt(sv)+1)+1;
        vi(sv)=(round(((inputv(sv))-Vmin)/p))+1;
    end
%========================================================================================================================================|
%list simbol per-methode
    syms=['s';'+';'o'];
%========================================================================================================================================|
%start plot sensitivity
%clf
    for sv=1:trialsv
        figure('Name',sprintf('Figure Sensitivity ke-%d',sv),'NumberTitle','off')
        set(gcf,'renderer','zbuffer');
        title(strcat('Sensitivity plot with ',scetype(scenario),sprintf(' in F(%d,%d)',inputv(sv),inputt(sv))))
        xlabel(xlabels)
        ylabel('Undeveloped Project Value')
        hold on
        for js=1:3
            fprintf('====================================================\n')
            fprintf('\nSensitivity with %s method in F(%d,%d)\n',methodnames{js},inputv(sv),inputt(sv))
            for tr=1:trial
                methods{tr}=sprintf('Nilai uji ke-%d = %f\n',tr,MatrixIterF{tr,js}(vi(sv),ti(sv)));
                fprintf(methods{tr});
                plMatrixIterF(tr,js)=MatrixIterF{tr,js}(vi(sv),ti(sv));
            end
            plot(sce(1:trial,scenario),plMatrixIterF(1:trial,js), strcat(colorss(length(colorss)-js+1),syms(js)));
            hold all
        end
        grid on
        legend(methodnames,'Location','NorthWest');
        hold off
    end
%========================================================================================================================================|
%re-run?
    fprintf('\n');
  fprintf('====================================================\n')
    disp('Want to reply new process?');
    disp('0 -> No.');
    disp('1 -> Yes.');
    repeat=2;
    while repeat<0 || repeat>1
        repeat=input('[0-1] = ');
        if repeat<0 || repeat>1
            disp('choose 0 / 1 only please !');
        end
        fprintf('=======================FINISH======================\n')
    end
end

should be like this
[url=http://postimg.org/image/5kx7ca6t9/][img]http://s30.postimg.org/5kx7ca6t9/1_F.png[/img][/url]

but suddenly became like this in another trial for figure 1 & 2 only, because figure 3 shown properly
[url=http://postimg.org/image/nc8tqqm7x/][img]http://s30.postimg.org/nc8tqqm7x/10_F.png[/img][/url]


I really appreciate for your help.
sorry if my question is confusing and so sorry cause i use my mother language in my code.

Viewing all articles
Browse latest Browse all 10

Trending Articles