HDQ Basith Studio

Specialized for graphic design and 3D modelling.

Download anything

Here you can get many useful software, music, and many kind of file.

Get windows problem?

Don't worry, here you may get the solutions of your windows problems.

Tips and Tricks

Sometimes a problem can be solved with a simple solution. Find the easiest and strangest solutions here.

Wanna get a high degree?

يرفع الله الذين آمنوا منكم والذين أوتوا العلم درجات

Selasa, 17 April 2012

Contoh Metode Bisection dengan Fortran

Selamat menikmati....

!Metode bisection
real :: a;
a=-1;
x=35;
g=9.81
Vo=20;
yo=2;
pi=acos(a);

print*,'Masukkan tebakan 1 '; read*,Te1
print*,'Masukkan tebakan 2 '; read*,Te2
Te1=Te1/180*pi;
Te2=Te2/180*pi;
Te3=Te1;

z1=tan(Te1)*x-g*x**2/(2*Vo**2*cos(Te1)**2)+yo-1;
z2=tan(Te2)*x-g*x**2/(2*Vo**2*cos(Te2)**2)+yo-1;

if (z1<0) then
    Te1=Te1;
else
    Te1=Te2
    Te2=Te3;
endif

i=0
if (z1*z2<0) then
    do i=1,100
    y=(Te1+Te2)/2
    if ((tan(y)*x)-(g*x**2/(2*Vo**2*cos(y)**2))+yo-1<0) then
      Te1=y
    else
      Te2=y
    endif
    Hasil= y*180/pi
    Print*,'Hasilnya adalah',Hasil
    enddo
else
  print*,'akar tidak diapit';
endif
end

Contoh Metode Bisection dengan Bahasa C/C++

Silahkan dicoba...

#include
#include
#include
int main()
{
    float m,x,y,i,g,Vo,yo,z1,z2,Hasil,pi,a,b;
    float Te1,Te2,Te3;
    pi=acos(-1);
x=35;
g=9.81;
Vo=20;
yo=2;
printf("Program Bisection\ntan(sudut)*35-(9.81*35^2/(2*20*20*(cos(sudut))^2)+1=0\n\n");
for (a=1;a<3;a++)
{
    printf("Masukkan tebakan kiri  (dalam sudut) : ");
    scanf("%f",&Te1);
    printf("Masukkan tebakan kanan (dalam sudut) : ");
    scanf("%f",&Te2);
    Te1=Te1*pi/180;
    Te2=Te2*pi/180;
    Te3=Te1;
    z1=(tan(Te1)*x)-((g*x*x)/(2*Vo*Vo*cos(Te1)*cos(Te1)))+1;
    z2=(tan(Te2)*x)-((g*x*x)/(2*Vo*Vo*cos(Te2)*cos(Te2)))+1;
    if (z1<0)
    {
       Te1=Te1;
       Te2=Te2;
    }
    else
    {
         Te1=Te2;
         Te2=Te3;
    }

    if (z1*z2<0)
    {
       for (i=1;i<100;i++)
       {
           y=(Te1+Te2)/2;
           m=(tan(y)*x)-((g*x*x)/(2*Vo*Vo*cos(y)*cos(y)))+1;
           if (m<0)
           {
              Te1=y;
              Te2=Te2;
           }
           else
           {
              Te2=y;
              Te1=Te1;
           }
       Hasil=(Te1*180)/pi;
       printf("\nHasilnya adalah %f derajat\n\n",Hasil);

       }
    }
    else printf("gagal");
}
system("pause");
}

Kamis, 12 April 2012

Metode Gauss dengan Matlab

Ini adalah contoh metode Gauss untuk menyelesaikan persamaan linier dengan 2 atau lebih variabel. Saya rasa script ini sudah cukup sempurna karena belum saya jumpai error. Silahkan dicoba....
disp('=====================================================================')

a=[cosd(30) 0 -cosd(45) 0 0 0 0; sind(30) 0 sind(45) 0 0 0 0; -cosd(30) -1 0 0 0 0 0; -sind(30) 0 0 0 -1 0 0; 0 0 cosd(45) 1 0 -1 0; 0 0 -sind(45) 0 0 0 -1; 0 1 0 -1 0 0 0];
b=[1200; -600; 0; 0; 0; 0; 0];
c=a;
d=b;
n=7;
for i=1:n-1;
    if a(1,1)==0;
    a(1,:)=a(i+1,:);
    b(1,:)=b(i+1,:);
    a(i+1,:)=c(i,:);
    b(i+1,:)=d(i,:);
    end
end
for k=[1:n-1];
    for i=[k+1:n];
        c=a;
        d=b;
        if a(k,k)==0;
            a(k,:)=a(k+1,:);
            b(k,:)=b(k+1,:);
            a(k+1,:)=c(k,:);
            b(k+1,:)=d(k,:);
        end
        factor=a(k,k)/a(i,k);
        for j=[k+1:n];
            if a(i,k)==0;
                a(i,j)=a(i,j);
            else a(i,j)=a(i,j)*factor-a(k,j);
            end
        end
        if a(i,k)==0;
            b(i)=b(i);
        else b(i)=b(i)*factor-b(k);
        end
    end
end
x(n)=b(n)/a(n,n);
for i=[n-1:-1:1];
    sum=b(i);
    for j=[i+1:n];
        sum=sum-a(i,j)*x(j);
    end
    x(i)=sum/a(i,i)
end

Finish=input('\nTekan Enter untuk melanjutkan.....');

Metode Bisection dengan Matlab

Ini adalah contoh script metode bisection menggunakan matlab. Silahkan dianalisa dan diedit sendiri.


'Ujian Matlab 8.36';
'Metode Bisection';
'fungsi y=tan(Te)*x-g*x^2/(2*Vo^2*cos(Te)^2)+yo';
x=35;
g=9.81;
Vo=20;
yo=2;
Te1=input('masukkan tebakan kiri  (dalam derajat) : ');
Te2=input('masukkan tebakan kanan (dalam derajat) : ');
Te1=Te1/180*pi;
Te2=Te2/180*pi;
Te3=Te1;
z1=tan(Te1)*x-g*x^2/(2*Vo^2*cos(Te1)^2)+yo-1;
z2=tan(Te2)*x-g*x^2/(2*Vo^2*cos(Te2)^2)+yo-1;
if z1<0;
    Te1=Te1;
else Te1=Te2;
    Te2=Te3;
end
if z1*z2<0;
    for i=1:100;
    y=(Te1+Te2)/2;
    if tan(y)*x-g*x^2/(2*Vo^2*cos(y)^2)+yo-1<0;
        Te1=y;
    else Te2=y;
    end
    end
    Hasil=Te1/pi*180
else 'akar tidak diapit';
end

x=0:0.1:35;
y=tan(Te1).*x-g.*x.^2./(2*Vo^2*cos(Te1)^2)+yo;
plot(x,y);