ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 수치해석하나.3 Matlab 입문하기(3) 볼께요
    카테고리 없음 2020. 2. 20. 05:09

    안녕하세요. 겸손한 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=(하나 π/3)(r^2h)을 정의하려다 실패한 거예요.R, H행렬의 컴포넌트에서 함수를 만들면, 연산의 전에 "명희"을 했어야죠.


    >


    바로 이렇습니다.이번에도 똑같이 해주면 됩니다. 그럼.


    >


    형태의 행렬이 작성되어 있음을 알 수 있다.마찬가지로 행렬요소의 나쁘지 않은 산, 곱셈이기 때문에 지수연산자/*^에 각각'.'를 붙이면 분리합니다. 하지만+토-는예외라고합니다


    푸르이:


    >


    저는 실수한 것도 보통 내버려둡니다.www.


    >


    t간격은 아무렇게나 지정해도 되는데, 예쁜 그래프를 위해서는 간격을 좁히는 게 좋을 것 같아. 그리고 솔직히 연산자 입력할 때 앞에 치기 헷갈려요.그 이후로는... subplot 예제가 있는데 이건 넘기도록 하겠습니다.(너무 TMI를 많이 발설하고 있는거 같은데, 이게 저도 아내 sound 배우면서 쓸까..말까..하는 거니까 헷갈려요.できません)


    >


    뭔가 복잡해 보이는게 회로이론 예제로서 본 것 같은 이야기네요.이 스토리는 많지만 이번에는 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은 사용자가 정의하는 함수입니다. 왜 이걸 반복하면 귀찮아서 그러는데 이걸 만들 때는 분명히 function name과 file name이 일치해야 된다고 생각해. 그럼 예제를 보면서 한번 배워보겠습니다.


    >


    풀이흐르다,최근까지는분명x구간을정해줄때유한구간에서과인이되어있었는데,이것으로뿌리를구할수있다?어쨌든교재는그래서해보겠습니다.​


    >


    >


    ​ 1단 요기까지 했지만, 요기부터 지금 진짜입니다.​


    >


    여기서 New-Script 누르고


    >


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


    >


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


    >


    위와 같이 x의 하나, 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단 재미 있었습니다.​금 1은 여기까지 포스팅한 겟움니다.^^


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


    댓글

Designed by Tistory.