ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 수치해석1.3 Matlab 입문하기(3)
    카테고리 없음 2020. 3. 7. 08:01

    안녕? 겸손한 J야.이전 문에서는 mesh grid 함수를 이용하여 행렬을 만들고, mesh 함수를 이용하여 그 행렬을 변수로 하는 그래프를 그렸습니다.이번에는 연산을 다뤄보려고 할 것이다.


    1.Matrix Multiplication


    >


    B를 정의할 때[-2 6-3 8 7]';그'를 들면 열벡터가 됩니다.A*B의 행렬 연산이 정의되도록 차원을 맞춰준 것입니다.그럼 한 번 계산을 해 볼까요?일(-2)+2*6+3(-3)+4*8+7(5=68. 행렬 계산을 정확히 하는군요. ​ 2.Element by Element Multiplication다음은 행렬 연산 말이고 직접 행렬의 component를 걸고 싶습니다.


    이런 식으로요. 그런데


    >


    이렇게 에러가 나쁘지 않아 감사합니다. 음, 어쩌죠 ​ 내가 아까 문에서 meshgrid함수를 이용하고 행렬 R와 H를 정의하고, 원뿔의 부피를 구하기 위해서 V=(1π/3)(r^2h)을 정의하려다 실패한 거예요.R, H행렬의 컴포넌트에서 함수를 만들려 하자, 연산의 전에 "."을 했어야죠.


    >


    바로 이렇게요.이번에도 똑같이 해주면 멀어요. 그럼.


    >


    형태의 행렬이 발생했음을 알 수 있습니다.마찬가지로 행렬 요소의 과이어야 할 산, 곱셈, 그리고 지수 연산자/*^에 각각 '.'를 붙이면 됩니다. 하지만+토-는예외라고합니다


    푸르이:


    >


    저는 실수한 것도 표준으로 둬요.www.


    >


    t 간격은 제가 지정해도 되는데 예쁜 그래프를 위해서 간격을 좁혀야 될 것 같아요. 그래서 솔직히 연산자 입력할 때 앞에 치기는 좀 헷갈려요.그 강은... subplot의 예제가 있는데 이건 틀도록 하겠습니다.(TMI를 많이 발설하는 것 같습니다만, 이게 저도 처음을 배우면서 글을 쓸까..이야기인가..하는 것이어서 판단이 잘 서질 않습니다.↓)


    >


    뭔가 복잡해 보이는게 회로이론의 예제에서 본 것 같은 스토리네요.얘기가 많지만 이번에는 Real part와 imaginary part를 나쁘지 않으니 나눠보라는 문제인 것 같습니다.플루이(a)


    >


    괄호 맞추기가 어려워서 실수를 했네요. 코딩하다 보면 흔히 발생하는 하나다.real함수를 이용해서 real_part변수를 지정해주었습니다.


    >


    결과 그래프이다. x, y의 축명명은 생략하였습니다.(b)


    >


    >


    이번에는 imag함수를 이용하여 변수를 지정하고 그래프를 그렸습니다.(c) 여기 가방은 뭔가 있네요.


    >


    >


    위에서도 썼는데 polar 그래프를 그리기 위해서는 round 함수를 이용해서 변수를 새로 지정하는 것이 좋다고 교재에 자신이 있습니다. 저는 충실하게 따랐을 뿐입니다.그래서 첫 번째 소음에 mag=abs(z)에서 mag변수를 z의 절대값이라고 정의했는데, 이것을 쓴 부분은 특별히 없는 것 같네요.그 후, angle 변수를 복소수의 각으로 정의하고, polar(angle, absolute value) 함수로 polar coordinate graph를 그릴 수 있었습니다.(아직 익숙하지 않아 어정쩡한 중)


    MATLAB는 2종류의 파일을 인식하고 있는데--모두"m-file"로 불리는데 왜냐하면...m확장자를 사용하기 때문이다. Script file은 2개 또는 그 이상의 함수로 구성되어 있습니다. 최근까지 우리가 배운 많은 함수가 Script file을 구성할 수 있다고 한다.Function file은 사용자가 정의하는 함수입니다. 왜이걸반복하면귀찮으니까그러는데이걸만들때는분명히functionname과filename이일치해야한다고한다. 그럼 예제를 보면서 한번 배워보겠습니다.


    >


    풀이흐른다,가장최근까지분명x구간을정해줄때유한구간에서나쁜데누웠는데이것으로뿌리가잡히지않는다?어쨌든교재를따라해봅시다.​


    >


    >


    첫 단은 여기까지는 했는데 여기부터는 요즘 냄새가 너무 많이 나요​


    >


    이곳에서 New-Script를 눌러서


    >


    이렇게 입력하고 준 다음에 저장을 하지만 저장할 때 funczero0하나.m으로 저장합니다.이렇게 즉시 다시 명령창을 엽니다.(Command window)


    >


    fplot 명령을 이용하여 그래프를 그리는데, fplot 명령어는 fplot('fnc name', lims)에서 변수를 받고, 이 때 lims는 [x_minx_max]의 행렬(행 벡터형)형 변수를 줄거리화한다.그럼 sound, 뿌리는 대체 어떻게 찾을까요? fzero라는 함수를 이용하면 되는데, fzero('fnc name', x)는 x 가까이에서의 함수 f의 뿌리를 찾으려는 시도를 한다.있으면 있다고, 없으면 없다고 스토리 한대요.​ 그래프에서 보면 뿌리가 x=-0.2, x=0.3부근에 있는 것 같으니 먹어 봅니다.


    >


    위와 함께 x1, x2변수를 지정하고 본인의 측면 옆으로 workspace창에서 값을 확인할 수 있는 슴니다.이번에는 fprintf 함수로 출력했네요. C언어를 배운지 너무 오래돼서 printf를 잊어버렸어요.ᅲᅲdouble, float 자료형이 어렴풋이 생각 책이네요. Script functiony를 이용해서 그래프를 그리고 그 부근의 뿌리를 찾는 엄청난 함수를 썼는데 꽤 재미있네요.​


    *추가 예제와 알 수 없는 진행 불가사항의 추가 예제는 뭐냐면, diff 함수를 이용하여 극대치와 극소값을 구하는 사고이다.​ syms x ymin zmin;ymin=일/(x-0.)^2+0.0일)-일/(x-것.2)^2+0.04)과 일본의 0;...zmin=diff(ymin)상의 코드를 교재로 입력하는 대로 입력했는데도 왜요?메토우레프이 20일 4a버전이라 그런지, 교재가 약 간 타이핑이 어정쩡한 곳도 있었던 거 같은데,( 그래도 무한의 신뢰)​ 그 사고도 하고 보고 싶어 한시간을 코딩하고 봤는데 안 되네요 ㅠ 원인을 아시는 분은 대답해 주시면 감사하겠습니다.


    1단 이렇게 하나의 단원들이 끝이 났군요. ​ Introduction이 50쪽라니, 앞으로 더욱 어려워지겠지만 조금 긴장되네요.그래도 1단 재미 있는 옷슴니다.언제나 그랬듯이 여기까지 쓰겠습니다.^^


    Reference:"Numerical anlaysis using MATLAB and Excel", Steven.T.Karris(2007)


    댓글

Designed by Tistory.