gyo15011
10
2019-10-22 20:55:53 작성 2019-10-22 21:04:08 수정됨
1
191

c++ 바이섹션 도움 요청


제가 비주얼 스튜디어 2019를 통해서

y=x제곱2 를 0과2사이 에서

바이섹션을 이용해서 구할려고 하는데

처음 코딩 입력할 때 #include<> 이것밖에 기억이

안나네요ㅠ #includ 하고 <>여기 안에 뭘 넣어야 하고

그 다음은 어떤 코딩들을 입력해야 하나요?


0
  • 답변 1

  • onizuka
    336
    2019-10-22 22:49:40 작성 2019-10-22 22:50:50 수정됨

    흠... 귀차니즘이신듯... 널린게 소스인데... 제가 짠게 맞는지 모르겠지만..

    그래프는 이게 맞는데.. 왜  마이너스 값 ~ 플러서 값이 나와야 할듯한데.. 왜그런지는 잘모르겠음..


    #include <iostream>
    #include <math.h>
    using namespace std;
    static double function(double x);
    int main() {
      double intervalBegin;
      double intervalEnd;
      double middle;
      double y_m;
      double y_a;
      double precision;
      cout << "Enter begining of interval: ";
      cin >> intervalBegin;
      cout << "Enter end of interval: ";
      cin >> intervalEnd;
      cout << "Enter precision of method: ";
      cin >> precision;
      if (function(intervalBegin) * function(intervalEnd) > 0.0f)
      {
        cout << "Function has same signs at ends of interval";
        return -1;
      }
      while (abs(intervalBegin - intervalEnd) > precision)
      {
        middle = (intervalBegin + intervalEnd) / 2.0f;
        y_m = function(middle);
        y_a = function(intervalBegin);
        cout << "X: " << middle << endl;
        if ((y_m > 0 && y_a <0) || (y_m < 0 && y_a > 0))
        {
          intervalEnd = middle;
        }
        else
        {
          intervalBegin = middle;
        }
      }
      int a;
      cin >> a; //Wait before exiting
      return 0;
    }
    static double function(double x)
    { //x^2-2
      return (x * x) - 2;
    }

    Enter begining of interval: 0

    Enter end of interval: 2

    Enter precision of method: 0.01

    X: 1

    X: 1.5

    X: 1.25

    X: 1.375

    X: 1.4375

    X: 1.40625

    X: 1.42188

    X: 1.41406

    대충 이렇게 나오네욤....
    참조 사이트
    C++ 온라인 컴파일 사이트 : https://www.onlinegdb.com/online_c++_compiler
  • 로그인을 하시면 답변 을 등록할 수 있습니다.