코딩

카테고리: 원하는 부분만 골라! 골라!

순서: 남들이 많이 봤던 내용들만 먼저! 먼저!

키워드 검색: 원하는 내용만 뽑아! 뽑아!

매트랩(matlab) 그래프 플롯 질문드립니다.(재료역학 관련)

작성자
jymin0112
작성일
2021-06-07 10:34
조회
1194
안녕하세요  매트랩에 그래프 플롯에 대해서 질문 드리고자 글을 작성합니다.

제가 매트랩을 거의 할줄 몰라서 코딩하는 것만으로도 정말 힘들었는데요

제가 만든 코딩식은 F와 EI가 정규분포를 따를때 단순보의 처짐량을

경계값을 기준으로 하여 신뢰도를 구하는 것입니다.

이 조건들을 사용해서  짠 코딩식은 다음과 같습니다.

이해하기 쉬우시도록 주석도 같이 달았습니다.

------------------------------------------------------------------

clc; clear all;
% generate random samples
L=5;
%단순보 길이가 5m이다.
n=1000;
EI=normrnd(3e7,10.^5, n, 1);
%EI는 평균이 3e7, 표준편차가 10^5이고 n*1개의 행렬을를 생성한다.
F=normrnd(10.^4, 10.^3, n, 1);
%W는 평균이 10^4, 표준편차가 10^3이고 n*1개의 행렬을 생성한다.

% calculate reliabilty
ns=0;
for i = 1:n
g1(i) = (-5*F(i,1)*L^4)/(EI(i,1)*384);
%단순보의 처짐방정식을 작성하였다.
if g1(i) < -3*10^-3
%함수값이 -3*10^-3인 경우에만 카운팅 한다.
ns = ns + 1
end
end
rel = ns/n
%rel은 함수값이 -3*10^-3보다 작을 확률이다.



그런데 무엇이 문제냐 하면은 이걸 효과적으로 보여주기 위해서

x축에는 사용된 샘플갯수:n개 (0부터 10만개까지) , y축에는 신뢰도:rel 값을 플롯하여

n의 값에 따른 신뢰도 변화 추이를 보고싶습니다.

이렇게 코딩을 하긴 했는데 아무래도 연속적인 값이 아니다보니 그래프가 이상하게 그려지눈군요 ㅠㅠ



x = [ 0 , 100 , 500 , 1000 , 2500 , 5000 , 10000 , 25000, 50000 , 100000 ]
y = [ 0 , 0.12 , 0.162 , 0.152 , 0.144, 0.1418, 0.1413 , 0.1465 , 0.14428 ,0.14519 ]
figure
plot ( x , y )
xlabel( 'The Number of trial simulations' )
ylabel( 'Reliability' )
title( 'Reliability Analysis Using MCS' )
grid on

-------------------------------------------------------------------------------------------------

구글이나 이런곳에 열심히 찾아봤는데도 잘 안되서 이렇게 남깁니다 ㅠㅠ
전체 1

  • 2021-06-07 10:52

    1. 연속적인 값이 아니므로 scatter plot을 그리는 것도 좋아보입니다.
    https://kr.mathworks.com/help/matlab/ref/scatter.html
    2. 필요하시다면 x value에 log10() 을 씌워주는 것도 좋아보입니다. (이럴 경우 0,0 데이터는 지워야하겠어요.)
    3. x축, y축의 표시범위도 설정할 수 있습니다.
    https://kr.mathworks.com/help/matlab/creating_plots/change-axis-limits-of-graph.html