블로그 이미지
제시카

안녕 !

Rss feed Tistory
신변잡기/공대딩 2011.02.28 18:45

졸업



직장인과 학생사이의 애매한 입장에 한동안 끼어있다가,
2월 24일부로 졸업, 학생신분을 드디어 탈피했다.

공학인증이니 뭐니 이수하느라 마지막 학기까지 전공과목을 들으면서도
아무런 코치없이 나름대로 커리큘럼을 따르다보니 졸업이 안되면 어쩌나 걱정도 많이했었던 것 같기도 하고 아닌 것 같기도 하고..

여튼 졸업식날 하나둘 늘어나는 꽃다발을 보니까
학교생활을 헛하진 않았다는 생각이 무럭무럭 자라나고

빛나는 졸업장을 손에 들고 보니 이게 4년동안 웃고 울.. 웃으며
고생... 즐겼던 결과물인가 싶어 묵직하더라.

여튼.. 이제 공대딩카테고리는 안녕!
신변잡기/공대딩 2009.07.01 20:16

수치해석 MATLAB 열전달 Gauss Seidel, Jacobi, LU Decomposition


결과그래프


프로그램 코드
LU Decomposition.

소스보기


Gauss Seidel 해법

소스보기


Jacobi 해법

소스보기

신변잡기/공대딩 2009.06.23 11:58

전산제도 Siemens Unigraphics NX (UG NX6) 기말고사



대망의 기말고사 시험물이다.
중딩때 손으로 그리던 제도를 할 때부터,
군대가기전 Think Design프로그램을 다룰 때,
이번에 UG NX라는 프로그램을 사용할 때 까지..
제도를 하면서 시간이 모자란 건 처음이었다.

마지막에 급히 서둘러서 하느라 치수기입이 엉성하다.
신변잡기/공대딩 2009.05.14 18:13

전산제도 Siemens Unigraphics NX (UG NX6) 중간고사



각 부품들(1~7)과 조립파일(assembly)
나머지 부품들은 모두 간단한 형상이라서 쉬웠는데,
왠지 볼트의 테두리를 깎는 아이디어가 떠오르지 않아서 고전했다.
테두리 깎는데만 30분.. 어쨌든 성공했다.

그리는 과정은.. 파일 열기만 하면 쉽게 알 수 있져~
신변잡기/공대딩 2009.05.12 22:08

수치해석 MATLAB Bisection Method, False Position Method

 1. Locate the nontrivial root of the non-algebraic equation, sin(x)=x2, where x is in radians, using:

a) The bisection method, with an initial interval (0.5, 1). Perform the computation to achieve an approximate percent relative error εa to be within εa<2×10-4%. Estimate the number of bisection iterations required to attain a desired absolute error, Ea,d of 1.75×10-6.

b) The method of false-position, with an initial interval (0.5, 1). Perform the computation to meet the same requirement (εa<2×10-4%). For both methods, plot a true error, εt and an approximated error, εa (log scale) versus iteration numbers and discuss the rate of convergence.

주어진 방정식 ;



a) Bisection Method


출력데이터 (iteration number, xl, xu, ea, et)

0

0.50000000

1.00000000

1

0.75000000

1.00000000

100.00000000

100.00000000

2

0.87500000

1.00000000

14.28571429

14.45448044

3

0.87500000

0.93750000

6.66666667

0.19689385

4

0.87500000

0.90625000

3.44827586

6.93189945

5

0.87500000

0.89062500

1.75438596

3.36750280

6

0.87500000

0.88281250

0.88495575

1.58530448

7

0.87500000

0.87890625

0.44444444

0.69420531

8

0.87500000

0.87695313

0.22271715

0.24865573

9

0.87597656

0.87695313

0.11148272

0.02588094

10

0.87646484

0.87695313

0.05571031

0.08550645

11

0.87670898

0.87695313

0.02784740

0.02981276

12

0.87670898

0.87683105

0.01392176

0.00196591

13

0.87670898

0.87677002

0.00696136

0.01195752

14

0.87670898

0.87673950

0.00348080

0.00499580

15

0.87672424

0.87673950

0.00174043

0.00151495

16

0.87672424

0.87673187

0.00087021

0.00022548

17

0.87672424

0.87672806

0.00043511

0.00064473

18

0.87672615

0.87672806

0.00021755

0.00020963

19

0.87672615

0.87672710

0.00010878

0.00000793

E_a,d가 1.75*10^(-6)일 때 interation 횟수는

25

0.87672621

0.87672623

0.00000170 에서

25 이다.


b) False-Position Method


출력데이터 (iteration number, xl, xu, ea, et)

0

0.50000000

1.00000000

1

0.79568610

1.00000000

100.00000000

100.00000000

2

0.86490596

1.00000000

8.00316564

9.24349214

3

0.87512417

1.00000000

1.16762956

1.34822737

4

0.87651133

1.00000000

0.15826004

0.18273143

5

0.87669743

1.00000000

0.02122750

0.02451018

6

0.87672236

1.00000000

0.00284324

0.00328338

7

0.87672570

1.00000000

0.00038076

0.00044015

8

0.87672615

1.00000000

0.00005099

0.00005940



False Position Method 가 더 빨리 수렴함을 볼 수 있다.

신변잡기/공대딩 2009.04.02 20:03

수치해석 MATLAB으로 exponential 값을 근사하라.


clear all

close all

b = 2; %구간 설정

m = 40; %구간개수 설정

degree = 5; %전개할 테일러함수의 항 개수

degrees = 5; %마지막으로 출력할 테일러함수의 항 개수 (degree보다 크다)

a = 0; %f(x-a) 의 a 값

delta_x = 2*b/m; %구간 사이의 거리

func = exp(a); %테일러함수 0째 항

eps_t = 0; %오차값 초기화

f_true = 0; %실제값 초기화

j = 1; %테일러함수 1항으로부터 시작.

while degree <=degrees

fprintf ('\ndegree : %d\n',degree);

fprintf ('----x값\t테일러함수값\t--실제함수값\t\t오차\n');

x=-b; %x 는 -b로부터

while x<b+delta_x %b 까지 계산한다.

f_true = exp(x); %실제값은 e^x

y=funct(a,j,x,func,degree); %각 x값마다 계산한다.

eps_t=(f_true-y)/f_true; %오차값 계산

fprintf('%2.4f\t%2.7f\t%2.7f\t%2.7f\n', x,y,f_true,eps_t);

%x값, 테일러함수, 실제값, 오차 출력

x = x+delta_x; %x를 증분 delta_x만큼 증가.

end

degree=degree+1; %다음항 계산분까지 출력 증가.

end

funct.m 파일 (funct 함수를 이용하기 위해.)

function y=funct(a,j,x,func,degree)

y=func;

while j<=degree

y=y+exp(a)/factorial(j).*(x-a).^j;

j=j+1;

end

end


결과

degree:1

x값

테일러값

실제함수값

오차

-2.0000

-1.0000000

0.1353353

8.3890561

-1.9000

-0.9000000

0.1495686

7.0173050

-1.8000

-0.8000000

0.1652989

5.8397180

-1.7000

-0.7000000

0.1826835

4.8317632

-1.6000

-0.6000000

0.2018965

3.9718195

-1.5000

-0.5000000

0.2231302

3.2408445

-1.4000

-0.4000000

0.2465970

2.6220800

-1.3000

-0.3000000

0.2725318

2.1007890

-1.2000

-0.2000000

0.3011942

1.6640234

-1.1000

-0.1000000

0.3328711

1.3004166

-1.0000

0.0000000

0.3678794

1.0000000

-0.9000

0.1000000

0.4065697

0.7540397

-0.8000

0.2000000

0.4493290

0.5548918

-0.7000

0.3000000

0.4965853

0.3958742

-0.6000

0.4000000

0.5488116

0.2711525

-0.5000

0.5000000

0.6065307

0.1756394

-0.4000

0.6000000

0.6703200

0.1049052

-0.3000

0.7000000

0.7408182

0.0550988

-0.2000

0.8000000

0.8187308

0.0228778

-0.1000

0.9000000

0.9048374

0.0053462

0.0000

1.0000000

1.0000000

0.0000000

0.1000

1.1000000

1.1051709

0.0046788

0.2000

1.2000000

1.2214028

0.0175231

0.3000

1.3000000

1.3498588

0.0369363

0.4000

1.4000000

1.4918247

0.0615519

0.5000

1.5000000

1.6487213

0.0902040

0.6000

1.6000000

1.8221188

0.1219014

0.7000

1.7000000

2.0137527

0.1558050

0.8000

1.8000000

2.2255409

0.1912079

0.9000

1.9000000

2.4596031

0.2275176

1.0000

2.0000000

2.7182818

0.2642411

1.1000

2.1000000

3.0041660

0.3009707

1.2000

2.2000000

3.3201169

0.3373727

1.3000

2.3000000

3.6692967

0.3731769

1.4000

2.4000000

4.0552000

0.4081673

1.5000

2.5000000

4.4816891

0.4421746

1.6000

2.6000000

4.9530324

0.4750691

1.7000

2.7000000

5.4739474

0.5067545

1.8000

2.8000000

6.0496475

0.5371631

1.9000

2.9000000

6.6858944

0.5662510

2.0000

3.0000000

7.3890561

0.5939942

degree:2

----x값

테일러함수값

--실제함수값

오차

-2.0000

1.0000000

0.1353353

-6.3890561

-1.9000

0.9050000

0.1495686

-5.0507345

-1.8000

0.8200000

0.1652989

-3.9607109

-1.7000

0.7450000

0.1826835

-3.0780908

-1.6000

0.6800000

0.2018965

-2.3680620

-1.5000

0.6250000

0.2231302

-1.8010557

-1.4000

0.5800000

0.2465970

-1.3520160

-1.3000

0.5450000

0.2725318

-0.9997667

-1.2000

0.5200000

0.3011942

-0.7264608

-1.1000

0.5050000

0.3328711

-0.5171038

-1.0000

0.5000000

0.3678794

-0.3591409

-0.9000

0.5050000

0.4065697

-0.2420996

-0.8000

0.5200000

0.4493290

-0.1572813

-0.7000

0.5450000

0.4965853

-0.0974952

-0.6000

0.5800000

0.5488116

-0.0568289

-0.5000

0.6250000

0.6065307

-0.0304508

-0.4000

0.6800000

0.6703200

-0.0144408

-0.3000

0.7450000

0.7408182

-0.0056448

-0.2000

0.8200000

0.8187308

-0.0015503

-0.1000

0.9050000

0.9048374

-0.0001797

0.0000

1.0000000

1.0000000

0.0000000

0.1000

1.1050000

1.1051709

0.0001547

0.2000

1.2200000

1.2214028

0.0011485

0.3000

1.3450000

1.3498588

0.0035995

0.4000

1.4800000

1.4918247

0.0079263

0.5000

1.6250000

1.6487213

0.0143877

0.6000

1.7800000

1.8221188

0.0231153

0.7000

1.9450000

2.0137527

0.0341416

0.8000

2.1200000

2.2255409

0.0474226

0.9000

2.3050000

2.4596031

0.0628569

1.0000

2.5000000

2.7182818

0.0803014

1.1000

2.7050000

3.0041660

0.0995837

1.2000

2.9200000

3.3201169

0.1205129

1.3000

3.1450000

3.6692967

0.1428875

1.4000

3.3800000

4.0552000

0.1665023

1.5000

3.6250000

4.4816891

0.1911532

1.6000

3.8800000

4.9530324

0.2166415

1.7000

4.1450000

5.4739474

0.2427768

1.8000

4.4200000

6.0496475

0.2693789

1.9000

4.7050000

6.6858944

0.2962796

2.0000

5.0000000

7.3890561

0.3233236

degree : 3

x값

테일러함수값

실제함수값

오차

-2.0000

-0.3333333

0.1353353

3.4630187

-1.9000

-0.2381667

0.1495686

2.5923572

-1.8000

-0.1520000

0.1652989

1.9195464

-1.7000

-0.0738333

0.1826835

1.4041598

-1.6000

-0.0026667

0.2018965

1.0132081

-1.5000

0.0625000

0.2231302

0.7198944

-1.4000

0.1226667

0.2465970

0.5025621

-1.3000

0.1788333

0.2725318

0.3438074

-1.2000

0.2320000

0.3011942

0.2297329

-1.1000

0.2831667

0.3328711

0.1493203

-1.0000

0.3333333

0.3678794

0.0939061

-0.9000

0.3835000

0.4065697

0.0567422

-0.8000

0.4346667

0.4493290

0.0326315

-0.7000

0.4878333

0.4965853

0.0176243

-0.6000

0.5440000

0.5488116

0.0087674

-0.5000

0.6041667

0.6065307

0.0038976

-0.4000

0.6693333

0.6703200

0.0014720

-0.3000

0.7405000

0.7408182

0.0004296

-0.2000

0.8186667

0.8187308

0.0000783

-0.1000

0.9048333

0.9048374

0.0000045

0.0000

1.0000000

1.0000000

0.0000000

0.1000

1.1051667

1.1051709

0.0000038

0.2000

1.2213333

1.2214028

0.0000568

0.3000

1.3495000

1.3498588

0.0002658

0.4000

1.4906667

1.4918247

0.0007763

0.5000

1.6458333

1.6487213

0.0017516

0.6000

1.8160000

1.8221188

0.0033581

0.7000

2.0021667

2.0137527

0.0057535

0.8000

2.2053333

2.2255409

0.0090799

0.9000

2.4265000

2.4596031

0.0134587

1.0000

2.6666667

2.7182818

0.0189882

1.1000

2.9268333

3.0041660

0.0257418

1.2000

3.2080000

3.3201169

0.0337690

1.3000

3.5111667

3.6692967

0.0430955

1.4000

3.8373333

4.0552000

0.0537253

1.5000

4.1875000

4.4816891

0.0656425

1.6000

4.5626667

4.9530324

0.0788135

1.7000

4.9638333

5.4739474

0.0931894

1.8000

5.3920000

6.0496475

0.1087084

1.9000

5.8481667

6.6858944

0.1252978

2.0000

6.3333333

7.3890561

0.1428765

degree : 4

x값

테일러함수값

실제함수값

오차

-2.0000

0.3333333

0.1353353

-1.4630187

-1.9000

0.3048375

0.1495686

-1.0381113

-1.8000

0.2854000

0.1652989

-0.7265694

-1.7000

0.2741708

0.1826835

-0.5007967

-1.6000

0.2704000

0.2018965

-0.3393000

-1.5000

0.2734375

0.2231302

-0.2254619

-1.4000

0.2827333

0.2465970

-0.1465402

-1.3000

0.2978375

0.2725318

-0.0928541

-1.2000

0.3184000

0.3011942

-0.0571252

-1.1000

0.3441708

0.3328711

-0.0339463

-1.0000

0.3750000

0.3678794

-0.0193557

-0.9000

0.4108375

0.4065697

-0.0104972

-0.8000

0.4517333

0.4493290

-0.0053510

-0.7000

0.4978375

0.4965853

-0.0025216

-0.6000

0.5494000

0.5488116

-0.0010721

-0.5000

0.6067708

0.6065307

-0.0003960

-0.4000

0.6704000

0.6703200

-0.0001193

-0.3000

0.7408375

0.7408182

-0.0000260

-0.2000

0.8187333

0.8187308

-0.0000032

-0.1000

0.9048375

0.9048374

-0.0000001

0.0000

1.0000000

1.0000000

0.0000000

0.1000

1.1051708

1.1051709

0.0000001

0.2000

1.2214000

1.2214028

0.0000023

0.3000

1.3498375

1.3498588

0.0000158

0.4000

1.4917333

1.4918247

0.0000612

0.5000

1.6484375

1.6487213

0.0001721

0.6000

1.8214000

1.8221188

0.0003945

0.7000

2.0121708

2.0137527

0.0007855

0.8000

2.2224000

2.2255409

0.0014113

0.9000

2.4538375

2.4596031

0.0023441

1.0000

2.7083333

2.7182818

0.0036598

1.1000

2.9878375

3.0041660

0.0054353

1.2000

3.2944000

3.3201169

0.0077458

1.3000

3.6301708

3.6692967

0.0106630

1.4000

3.9974000

4.0552000

0.0142533

1.5000

4.3984375

4.4816891

0.0185759

1.6000

4.8357333

4.9530324

0.0236823

1.7000

5.3118375

5.4739474

0.0296148

1.8000

5.8294000

6.0496475

0.0364067

1.9000

6.3911708

6.6858944

0.0440814

2.0000

7.0000000

7.3890561

0.0526530

degree : 5

x값

테일러함수값

실제함수값

오차

-2.0000

0.0666667

0.1353353

0.5073963

-1.9000

0.0984959

0.1495686

0.3414667

-1.8000

0.1279360

0.1652989

0.2260323

-1.7000

0.1558494

0.1826835

0.1468885

-1.6000

0.1830187

0.2018965

0.0935026

-1.5000

0.2101563

0.2231302

0.0581450

-1.4000

0.2379147

0.2465970

0.0352085

-1.3000

0.2668964

0.2725318

0.0206779

-1.2000

0.2976640

0.3011942

0.0117207

-1.1000

0.3307499

0.3328711

0.0063723

-1.0000

0.3666667

0.3678794

0.0032967

-0.9000

0.4059168

0.4065697

0.0016059

-0.8000

0.4490027

0.4493290

0.0007262

-0.7000

0.4964369

0.4965853

0.0002988

-0.6000

0.5487520

0.5488116

0.0001087

-0.5000

0.6065104

0.6065307

0.0000334

-0.4000

0.6703147

0.6703200

0.0000080

-0.3000

0.7408173

0.7408182

0.0000013

-0.2000

0.8187307

0.8187308

0.0000001

-0.1000

0.9048374

0.9048374

0.0000000

0.0000

1.0000000

1.0000000

0.0000000

0.1000

1.1051709

1.1051709

0.0000000

0.2000

1.2214027

1.2214028

0.0000001

0.3000

1.3498578

1.3498588

0.0000008

0.4000

1.4918187

1.4918247

0.0000040

0.5000

1.6486979

1.6487213

0.0000142

0.6000

1.8220480

1.8221188

0.0000389

0.7000

2.0135714

2.0137527

0.0000900

0.8000

2.2251307

2.2255409

0.0001843

0.9000

2.4587583

2.4596031

0.0003435

1.0000

2.7166667

2.7182818

0.0005942

1.1000

3.0012584

3.0041660

0.0009679

1.2000

3.3151360

3.3201169

0.0015002

1.3000

3.6611119

3.6692967

0.0022306

1.4000

4.0422187

4.0552000

0.0032011

1.5000

4.4617188

4.4816891

0.0044560

1.6000

4.9231147

4.9530324

0.0060403

1.7000

5.4301589

5.4739474

0.0079994

1.8000

5.9868640

6.0496475

0.0103780

1.9000

6.5975124

6.6858944

0.0132192

2.0000

7.2666667

7.3890561

0.0165636



x

degree : 1

degree : 2

degree : 3

degree : 4

degree : 5

TRUE

-2

-1

1

-0.3333

0.3333

0.0667

0.1353

-1.9

-0.9

0.905

-0.2382

0.3048

0.0985

0.1496

-1.8

-0.8

0.82

-0.152

0.2854

0.1279

0.1653

-1.7

-0.7

0.745

-0.0738

0.2742

0.1558

0.1827

-1.6

-0.6

0.68

-0.0027

0.2704

0.183

0.2019

-1.5

-0.5

0.625

0.0625

0.2734

0.2102

0.2231

-1.4

-0.4

0.58

0.1227

0.2827

0.2379

0.2466

-1.3

-0.3

0.545

0.1788

0.2978

0.2669

0.2725

-1.2

-0.2

0.52

0.232

0.3184

0.2977

0.3012

-1.1

-0.1

0.505

0.2832

0.3442

0.3307

0.3329

-1

0

0.5

0.3333

0.375

0.3667

0.3679

-0.9

0.1

0.505

0.3835

0.4108

0.4059

0.4066

-0.8

0.2

0.52

0.4347

0.4517

0.449

0.4493

-0.7

0.3

0.545

0.4878

0.4978

0.4964

0.4966

-0.6

0.4

0.58

0.544

0.5494

0.5488

0.5488

-0.5

0.5

0.625

0.6042

0.6068

0.6065

0.6065

-0.4

0.6

0.68

0.6693

0.6704

0.6703

0.6703

-0.3

0.7

0.745

0.7405

0.7408

0.7408

0.7408

-0.2

0.8

0.82

0.8187

0.8187

0.8187

0.8187

-0.1

0.9

0.905

0.9048

0.9048

0.9048

0.9048

0

1

1

1

1

1

1

0.1

1.1

1.105

1.1052

1.1052

1.1052

1.1052

0.2

1.2

1.22

1.2213

1.2214

1.2214

1.2214

0.3

1.3

1.345

1.3495

1.3498

1.3499

1.3499

0.4

1.4

1.48

1.4907

1.4917

1.4918

1.4918

0.5

1.5

1.625

1.6458

1.6484

1.6487

1.6487

0.6

1.6

1.78

1.816

1.8214

1.822

1.8221

0.7

1.7

1.945

2.0022

2.0122

2.0136

2.0138

0.8

1.8

2.12

2.2053

2.2224

2.2251

2.2255

0.9

1.9

2.305

2.4265

2.4538

2.4588

2.4596

1

2

2.5

2.6667

2.7083

2.7167

2.7183

1.1

2.1

2.705

2.9268

2.9878

3.0013

3.0042

1.2

2.2

2.92

3.208

3.2944

3.3151

3.3201

1.3

2.3

3.145

3.5112

3.6302

3.6611

3.6693

1.4

2.4

3.38

3.8373

3.9974

4.0422

4.0552

1.5

2.5

3.625

4.1875

4.3984

4.4617

4.4817

1.6

2.6

3.88

4.5627

4.8357

4.9231

4.953

1.7

2.7

4.145

4.9638

5.3118

5.4302

5.4739

1.8

2.8

4.42

5.392

5.8294

5.9869

6.0496

1.9

2.9

4.705

5.8482

6.3912

6.5975

6.6859

2

3

5

6.3333

7

7.2667

7.3891


신변잡기/공대딩 2009.04.02 19:53

수치해석 MATLAB으로 테일러 전개로 sin(x)의 값을 근사하라.


f=sin(pi/4); %구하고 싶은 함수. 참값.

x=1; %func값을 알고있을 때의 x값

j=0; %while 구문을 0부터 실행한다.

n=3; %유효숫자 개수

eps_s=0.5*10^(2-n);

known=1;

unknown=pi/4;

func=0; %테일러함수 func를 초기화한다.

func_before=0; %이전 테일러함수 func_before를 초기화한다.

fprintf ('terms\t근사오차\t  상대오차\t   함수값\n')

while j<100 %초항 0부터 100항까지 반복

if mod(j,4)==0

plusfunc=sin(x); %0,4,8.. 항은 sinx

elseif mod(j,4)==1

plusfunc=cos(x); %1,5,9.. 항은 cosx

elseif mod(j,4)==2

plusfunc=-sin(x); %2,6,10.. 항은 -sinx

else

plusfunc=-cos(x); %3,7,11.. 항은 -cosx

end

func=func+plusfunc/factorial(j)*((unknown-known)^j); %테일러급수전개.

eps_a=(func-func_before)/func*100; %근사오차 = (현재값-이전값)/현재값

eps_t=(f-func)/f*100; %상대오차 = (참값-현재값)/참값

fprintf('%2.0f\t%2.7f\t%2.7f\t%2.7f\n', j,eps_a,eps_t,func)

%각 회수마다 상대오차, 근사오차, 함수값을 출력한다.

if abs(eps_a) < eps_s

break %근사오차가 백분율허용치보다 작아지면 멈춘다.

end

func_before=func; %이전값을 현재 값으로 교체한다.

j=j+1; %회수를 1회 증가한다.

end

fprintf('\n실제값 : %2.10f, ',f)

fprintf('근사값 : %2.10f',func)

결과

terms

근사오차

상대오차

함수값

0

100.0000000

-19.0019679

0.8414710

1

-15.9815978

-2.6041804

0.7255211

2

-2.7439891

0.1360748

0.7061446

3

0.1258767

0.0102110

0.7070346

4

0.0105166

-0.0003056

0.7071089


매트랩은 처음 다뤄봐서 코딩이 다소 지저분한 듯도 하다.
어쨌든 결과값은 제대로 출력 되는듯 :)
신변잡기/공대딩 2009.04.01 17:31

09년4월1일 Unigraphics NX 6 작업



뭔지 모르겠군..

벨트가 걸려서 돌아가는 거라는데.. 모르겠다.
TOTAL 714,208 TODAY 5