가상 위치법

언어/Coding 2015. 12. 22. 02:51

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define e 2.71

double f(double num1) {

 double num2;

 num2=pow(e, -num1) - num1;

 return num2;

} //definition of f(x)

int main() {

 double a, b, c,n1,n2,n3;

 for (;;) {

  printf("\n\n a값 입력:");

  scanf("%lf", &a);

  printf("\n b값 입력:");

  scanf("%lf", &b);

  n1 = f(b)*(a - b);

  printf("n1값:%lf\n",n1);

  n2 = f(a) - f(b);

  printf("n2값:%lf\n", n2);

  n3 = n1 / n2;

  printf("n3값:%lf\n", n3);

  c = b - n3;

  printf("\n c값은:%lf", c);

 }

}

'언어 > Coding' 카테고리의 다른 글

Romberg법  (0) 2015.12.22
할선법  (0) 2015.12.22
simpson 1/3 공식  (0) 2015.12.22
거듭제곱  (0) 2015.12.22
역 거듭제곱  (0) 2015.12.22
Posted by 知彼知己百戰不殆
,

simpson 1/3 공식

언어/Coding 2015. 12. 22. 02:50

#include <stdio.h>

#include <math.h>

#include <string.h>

float f(float x)

{

    return 4*pow(x,3)-6*pow(x,2)+4;   // 이 함수 부분을 바꿔줘야 함

}

int main()

{

    int i,n;

    float x0,xn,h,y[20],so,se,ans,x[20];

    printf("\n Enter values of x0,xn,h: ");

    scanf("%f%f%f",&x0,&xn,&h);

    n=(xn-x0)/h;

    if(n%2==1)

    {

        n=n+1;

    }

    h=(xn-x0)/n;

    printf("\n Refined value of n and h are:%d %f\n",n,h);

    printf("\n Y values: \n");

    for(i=0; i<=n; i++)

    {

        x[i]=x0+i*h;

        y[i]=f(x[i]);

        printf("\n %f\n",y[i]);

    }

    so=0;

    se=0;

    for(i=1; i<n; i++)

    {

        if(i%2==1)

        {

            so=so+y[i];

        }

        else

        {

            se=se+y[i];

        }


    }

    ans=h/3*(y[0]+y[n]+4*so+2*se);

    printf("\n Final integration is %f\n",ans);


}



'언어 > Coding' 카테고리의 다른 글

할선법  (0) 2015.12.22
가상 위치법  (0) 2015.12.22
거듭제곱  (0) 2015.12.22
역 거듭제곱  (0) 2015.12.22
Lagrange  (0) 2015.12.22
Posted by 知彼知己百戰不殆
,

거듭제곱

언어/Coding 2015. 12. 22. 02:48

/* 거듭제곱법 알고리즘

   행렬의 최대 고유값과 그 때의 고유벡터를 거듭제곱으로 구할 때 사용 */


#include <stdio.h>

#include <stdlib.h>

#include <math.h>

double A[10][10],x0[10],sum[10],xR[10];

/* void trace(){

        int i;

        for(i=1;i<=3;i++)

                xR[i]=x0[i];

} */


int main()

{

        int i,j,n,k,repeat,v;

        float ramda,temp,temp2,x1;

        printf("몇 행렬: ");

        scanf("%d",&n);

        printf("반복 횟수 입력:");

        scanf("%d",&repeat);

        printf("기본 행렬을 입력해 주세요:\n");

        for(i=1;i<=n;i++) //행 입력

        {

                for(j=1;j<=n;j++) //열 입력

                {

                        printf("A[%d][%d]:",i,j);

                        scanf("%lf",&A[i][j]);

                }

        }

//      printf("A[2][1]: %f\n",A[2][1]);  //단순 값 확인용도

        for(i=1;i<=n;i++)

        {

                printf("초기 x(0)을 입력해 주세요: ");

                scanf("%lf",&x0[i]);

        }

v=1;

        for(i=1;i<=repeat;i++) //수렴기준 대신에 반복 횟수로 카운트

        {

                //A*x(0)을 계산

                for(j=1;j<=n;j++)

                {

                        sum[j]=0;

                        for(k=1;k<=n;k++)

                        {

                                sum[j]=sum[j]+A[j][k]*x0[k]; // Y = sum

                        }

                        //printf("Y값 계산:%f\n",sum[j]);

                }

                temp = 0;

                temp2 = 0;

                for(j=1;j<=n;j++)

                {

                        temp=x0[j]*sum[j]+temp; // temp는 lamda구하기 위한 임시 변수

                        //printf("x0[%d]=%f, temp:%f\t",j,x0[j], temp);

                        temp2=x0[j]*x0[j]+temp2;

                        //printf("temp2:%f\n",temp2);

                        ramda=temp/temp2;

                }

                //printf("Lamda:%f\n",ramda);

                x1=0;

                for(j=1;j<=n;j++)

                        x1=pow(sum[j],2)+x1;

                x1=sqrt(x1);

                //printf("x(1):%f\n",x1);

                for(j=1;j<=n;j++)

                        x0[j]=sum[j]/x1;

                printf("반복횟수:%d\t Lamda:%f\t x(1):%f\t x(2):%f\t x(3):%f\n",v,ramda,x0[1],x0[2],x0[3]);

v++;

}//end of repeat

}//end of main



'언어 > Coding' 카테고리의 다른 글

가상 위치법  (0) 2015.12.22
simpson 1/3 공식  (0) 2015.12.22
역 거듭제곱  (0) 2015.12.22
Lagrange  (0) 2015.12.22
Gauss Seidel  (0) 2015.12.21
Posted by 知彼知己百戰不殆
,