<div class="viewContent" style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;padding:50px 10px;line-height:1.8;margin-bottom:10px;border:1px dotted rgb(204,204,204);"> <div> 과게에도 물어봤었는데 비선형이라 코딩으로 풀어야 할 것 같네요...</div> <div><br></div> <div>C++에 대해서 잘 아시는 분들 조언 해주시면 감사하겠습니다 정말 모르겠어요ㅠ</div> <div><br></div> <div><font face="gulim, sans-serif"><span style="font-size:13px;line-height:20.0909080505371px;">제 코딩의 목적은요...</span></font></div> <div><span style="font-family:gulim, sans-serif;font-size:13px;line-height:20.0909080505371px;"><br></span></div> <div><span style="font-family:gulim, sans-serif;font-size:13px;line-height:20.0909080505371px;">y"'+ty"-3y=2t,</span></div><br style="margin:0px;padding:0px;font-family:gulim, sans-serif;font-size:13px;line-height:20.0909080505371px;"><span style="font-family:gulim, sans-serif;font-size:13px;line-height:20.0909080505371px;">y(0)=0, y'(0)=0, y"(0)=1</span><br style="margin:0px;padding:0px;font-family:gulim, sans-serif;font-size:13px;line-height:20.0909080505371px;"><br style="margin:0px;padding:0px;font-family:gulim, sans-serif;font-size:13px;line-height:20.0909080505371px;"><span style="font-family:gulim, sans-serif;font-size:13px;line-height:20.0909080505371px;">이 식을 푸는거에요. 그리고 여기서 y가 t에 관한 수식이에요...</span> <div><font face="gulim, sans-serif"><span style="font-size:13px;line-height:20.0909080505371px;"><br></span></font></div> <div><font face="gulim, sans-serif"><span style="font-size:13px;line-height:20.0909080505371px;">그래서 아래와 같은 코드를 짰는데 치명적인 오류가 뜨네요 답도 안 나오고</span></font></div> <div><font face="gulim, sans-serif"><span style="font-size:13px;line-height:20.0909080505371px;"><br></span></font></div> <div><font face="gulim, sans-serif"><span style="font-size:13px;line-height:20.0909080505371px;">논리적으로 뭐가 잘못되었는지 알려 주실 수 있나요?<br></span></font> <div>------------------------------------------------------------------</div> <div>#include<stdio.h> </div> <div>#include<math.h> </div> <div><br></div> <div>double f1(double t, double y);//문제 식 정의</div> <div>double f2(double t, double y);</div> <div>double f3(double t, double y, double z );</div> <div><br></div> <div>void main()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>double y1[200];//y1를 저장할 공간 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>double k[100][100];//k값을 저장할 공간 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y1[0] = 0;//y1의 초기치</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>double y1p, y1c, y1pm;// y1의 예측자, 수정자, 보정예측자 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>double t = 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i, j;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>double h = 0.1;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (i = 0; i<3; i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>k[1][1] = f1(t, y1[i]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>k[1][2] = f1(t + h / 2, y1[i] + h / 2.0 * k[1][1]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>k[1][3] = f1(t + h / 2, y1[i] + h / 2.0 * k[1][2]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>k[1][4] = f1(t + h, y1[i] + h * k[1][3]);//y1의 4계 Runge-Kutta식 </div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y1[i + 1] = y1[i] + h / 6.0 * (k[1][1] + 2 * (k[1][2] + k[1][3]) + k[1][4]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (j = 3; j<100; j++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>t = 0.1 + j / 10.0;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y1p = y1[j] + h / 24.0*(55 * f1(t - 0.1, y1[j]) - 59 * f1(t - 0.2, y1[j - 1]) + 37 * f1(t - 0.3, y1[j - 2]) - 9 * f1(t - 0.4, y1[j - 3]));</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y1c = y1[j] + h / 24.0*(9 * f1(t, y1p) + 19 * f1(t - 0.1, y1[j]) - 5 * f1(t - 0.2, y1[j - 1]) + f1(t - 0.3, y1[j - 2]));</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//y1의 예측자와 수정자를 구하는 식 </div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y1pm = y1p + 251.0 / (19.0 + 251.0)*(y1c - y1p);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//y1의 보정 예측자를 구하는 식 </div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y1c = y1[j] + h / 24.0*(9 * f1(t, y1pm) + 19 * f1(t - 0.1, y1[j]) - 5 * f1(t - 0.2, y1[j - 1]) + f1(t - 0.3, y1[j - 2]));</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y1[j + 1] = y1c - 19.0 / (19.0 + 251.0) * (y1c - y1p);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//y1보정 수정자를 구하는 식 </div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if (t > 10)break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf(" t=%lf, y1=%lf \n", t, y1[j + 1]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div> <div><br></div> <div>double f1(double t, double y, double z)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>double f;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>f = y ;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return f;</div> <div>}</div> <div>double f2(double t, double y, double z)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>double f;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>f = z ;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return f;</div> <div>}</div> <div>double f3(double t, double y, double z)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>double f;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>f = 2*t+3*y-t*z;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return f;</div> <div>}</div></div></div> <hr size="1" width="97%" style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;font-size:small;line-height:normal;"><div class="viewScrapDiv" style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;font-size:small;line-height:normal;"><img src="http://www.todayhumor.co.kr/board/images/doscrap2.gif?3" style="width:119px;height:52px;" alt=""> <a style="color:#0000FF;"><img src="http://www.todayhumor.co.kr/board/images/view_source2.gif?2" border="0" alt=""></a> <img src="http://www.todayhumor.co.kr/board/images/accuse_board.gif?1" border="0" style="display:inline;width:92px;height:32px;visibility:visible;" alt=""></div> <hr size="1" width="97%" style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;font-size:small;line-height:normal;"><div class="tailDiv" style="text-align:center;font-size:9pt;line-height:21.6000003814697px;"> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;text-align:left;margin-left:10px;"><font color="#0000FF">[침묵하는자의 꼬릿말입니다]</font> </div> <div style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;text-align:left;padding:8px;margin:0px auto;height:200px;visibility:visible;overflow:hidden;border:1px dotted #FFA500;width:806px;">마지막 부분은 아래 함수를 정의하려 했습니다.<br><br>dy1/dt=y2<br><br>dy2/dt=y3<br><br>dy3/dt=2t+3y1-ty2</div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.