본문 바로가기

프로그램/MATLAB

【MATLAB】 단순 지지보 특이함수 문제풀이

- Chapra의 응용수치해석 3판 연습문제 3.10

[문제]


Q. 단순 지지보가 그림에 나타나 있다. 특이함수(singularity function)를 사용하여 보를 따라 생기는 처짐을 다음과 같이 나타낼 수 있다.


특이함수는 다음과 같이 정의할 수 있다.


보를 따르는 거리 x에 대한 처짐(점선)의 그래프를 생성하기 위한 M-파일을 작성하라. 보의 왼쪽 끝에서 x = 0이 됨을 유의하라.

<그림>


[문제풀이]


우선, 구간별로 if~elseif 구문을 만들어서 해보려다가 실패....하고 아래와 같이 함수를 이용해서 스크립트에서 실행하는 것으로 대체해서 풀어보았습니다.


우선, 위의 사진은 '함수 M-파일'입니다. singul이라는 이름의 함수를 지정해서 세 개의 변수(a,b,c)를 받아서 특이함수를 계산하는 함수를 만든 것입니다. 문제에서 주어진 특이함수의 정의를 if~else의 간단한 구문 하나로 완성시켰습니다.


그리고 위 사진이 실제로 진행하는 스크립트 파일입니다. 위에서 우선, x를 0~10까지 linspace로 100등분을 해주었고 그 100개를 n에 length(x)로 넣어주었습니다.

그리고 for 구문에서는 i가 1부터 n까지 반복되는데 문제에서 주어진 함수를 계산하는 것입니다. 이때, 위에서 만들어준, 함수파일을 가져와서 함수식을 계산합니다.

마지막으로 11번째 줄에서 plot 함수를 통해 아래와 같은 그래프를 만들었습니다. '--'표시는 선을 점선으로 표현하라는 말입니다.


위와 같이 그래프가 만들어졌습니다. 문제에서 주어진 조건의 보가 위와 같이 처짐이 발생한다는 것을 파악할 수 있습니다. 이상!


(추가)------------------------------------------------
2017.10.15
ANSYS Static Structual을 통해 위 문제에 대해서 대략적으로나마 경향성을 확인해보았습니다.


  • park 2017.10.14 17:30 댓글주소 수정/삭제 댓글쓰기

    저 두 mfile을 하나의 mfile로 합칠 수 있나요??

    • 네 하나로 합칠수있습니다. 스크립트 파일에서 함수를 이용한 부분에 전부다 함수파일에서 만든 코드를 넣어주는 개념으로 파일을 하나로 만들 수도 있습니다. 하지만 루프구조가 많이 들어가게되서 복잡해질 수 있어요! 공통된 내용은 함수파일로 빼주면 좋습니다!

  • wkej 2018.03.31 14:03 댓글주소 수정/삭제 댓글쓰기

    글 잘봤어요
    그대로 따라해봤는데 안되는데 초록색 모자이크된부분 때문인가요?

  • 강강 2019.09.26 23:48 댓글주소 수정/삭제 댓글쓰기

    혹시 하나의 mfile 로 합치는과정에서 부함수(subfunc)를 사용해야되나요?

    • 매트랩도 일종의 코딩이라 표현 하는 방식은 여러가지가 있을 수 있습니다! 초보처럼 노가다로 하나하나 다 써주는 방식이 있는 반면, 부함수나 여러 함수를 섞어서 사용하는 방법도 (어렵지만) 가능합니다.

  • kom 2019.10.11 19:45 댓글주소 수정/삭제 댓글쓰기

    그래프가 저렇게 안나와요..

  • kim 2019.10.12 11:11 댓글주소 수정/삭제 댓글쓰기

    singul(x(i),b,c)에서 x(i)를 i로바꿔봣는데 그래프가 다르게 나오네요. 차이점이 무엇인가요?