史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   請教matlab數值列印及迴圈問題,麻煩教授一下! (http://forum.slime.com.tw/thread241862.html)

lekia1212 2009-01-11 01:05 AM

請教matlab數值列印及迴圈問題,麻煩教授一下!
 
我是matlab新手,最近卡一個東西卡很久~麻煩各位大大解救一下!
程式碼如下:
function dx=calcs(t,x)
% let x=x(1) z=x(2) V=x(3) a=x(4) m=x(5)
c=0.000294;
g=9.81;
S=49.24;
e=0.310828;
L=x(5)*g;
C_L=L/0.5/e/x(3).^2/S
C_D=0.012+0.179*C_L.^2;
D=0.5*e*x(3).^2*S*C_D;
T=D;dx=[x(3)*cos(x(4));
x(3)*sin(x(4));
1/(x(5))*(T-D)-g*sin(x(4));
L/(x(5)*x(3))-(g*cos(x(4)))/x(3);
-(c/g)*T]; soultion:ta=0:0.1:3600;
tol=1e-6;
options=odeset('RelTol',tol,'AbsTol',tol);
x1=[0,120000,190,0,16967];
[tca,xa]=ode45(@calcs,ta,x1,options)
其中,假如我想列出其他數值的3600個點出來看,要如何加指令?如C_L或T值的3600個點。我現在只是將其後面的冒號去掉,但他印出來的只有115個點,該如何與時間0:0.1;360一起搭配印出3600個點?
另外,再請教,如果程式裡我要在加進一些條件來控制C_L,C_D,k值:
0 <= M <= 0.6, c = 1.06,
0.6<= M <=2.1, c = 1.06 + 0.42145 *(M - 0.6)^2 -0.31783 *(M - 0.6)^3 + 0.46069 *(M -0.6 )^4 -0.16431 *(M - 0.6)^5 ,
0 <= M <= 0.6, C_D = 0.012,
0.6 <= M <= 0.95 C_D = 0.012 + (0.0098604*( M -0.6)^2)/(0.987257-M)^0.566955 ,
0.95 <= M <= 1.05 C_D = 0.0198 + 0.16326 *(M - 0.95) + 2.2349 *(M-0.95)^2 - 48.525* (M - 0.95)^3 + 200.61 *(M - 0.95)^4 ,
1.05 <= M <= 2.1, C_D = 0.028 - 0.037568 *(M - 1.1) + 0.053113 *(M - 1.1)^2 - 0.026352*(M -1.1)^3 ,
0 <= M <= 0.6, k =0.179 ,
0.6 <= M <=1.3 k =0.179 + 0.093512 *(M - 0.6)^2 -0.15917 *(M - 0.6)^3+0.23231*(M - 0.6)^4 ,
1.3 <= M <= 2.1. k=0.226 + 0.21566 *(M -1.3) +0.042555 *(M - 1.3)^2 +0.17071 *(M - 1.3)^3 - 0.12491 *(M - 1.3)^4 ,
0 <= M <= 0.6, C_L=0.95 ,
0.6 <= M <= 1 C_L=0.95 -14.68752 *(M - 0.6)^2 + 32.81276 *(M -0.6)^3 -15.62537 *(M - 0.6)^4 ,
M =>1 C_L=0.30 + 1.35694 *(M - 1.0)^2 -2.03241 *(M -1.0)^3 + 0.77546 * (M - 1.0)^4 ,
在麻煩各位高手幫忙一下了,小弟非常感激!!

lekia1212 2009-01-12 01:11 AM

各位高手幫一下忙><
 
謝謝~但...怎麼請高手幫忙阿...此問題有點急>"<


所有時間均為台北時間。現在的時間是 05:53 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1