คุณยังไม่ได้ Log in | สมัครสมาชิก ฟรี
กลับหน้าแรก วิชาการ.คอม
การฝึกเขียนโปรแกรม SciLab ขั้นแนะนำ (โดย MathGuy)
โพสต์เมื่อ: 11:21 วันที่ 30 เม.ย. 2550         ชมแล้ว: 10,473 ตอบแล้ว: 181
น่าจะนับได้ว่า เป็นการนับ 1 ของการที่จะพอมีอะไรแบ่งปันให้กับคนอื่นๆบ้าง ในโลก Internet จากที่เราได้ใช้ประโยชน์จากแหล่งความรู้ ข้อมูลต่างที่มีประโยชน์ต่อเรา ที่มีคนเสียสละเวลา เสียสละแรงกายใจ แบ่งปันให้เราได้ใช้ร่วมกัน

เมื่อถึงจุดๆหนึ่ง เราก็น่าจะได้เริ่ม ทดแทนคุณกลับคืนบ้าง (รับมามากแล้ว เราก็ฝึกที่จะให้ )
.........................................................................................................................

กระทู้นี้ จึงเป็นการแบ่งปัน ในเรื่องการฝึกเขียนโปรแกรม SciLab

เข้าไปดูตรงนี้นะครับ : http://www.champa.kku.ac.th/jeerayut/scilab41/scilab41.html
(1) ถ้ารู้ว่า MatLab, Maple, Mathematica, Maxima, Octave คืออะไร ก็จะรู้ว่า SciLab เป็นพี่น้องกันด้วย
(2) SciLab เป็น Freeware และเข้าใจว่าจะเป็นต่อไปเรื่อยๆ (เช่นเดียวกับ Maxima และ Octave)
(3) ผมเชือว่า SciLab มีความสามารถสูงในการใช้งาน และกำลังจะเข้าไปพิสูจน์ หาคำตอบอันนี้
(4) กระทู้นี้จึงเป็นการเชิญชวน ผู้ที่สนใจ ให้เรียนรู้ไปด้วยกัน
(5) ผู้เรียนควรจะมีพื้นความรู้ทางคณิตศาสตร์ (มัธยมปลายน่าจะ OK) และมีพื้นความรู้ทางการเขียนโปรแกรมคอมพิวเตอร์บ้างพอสมควร (เคยเขียนมาบ้าง ภาษาอะไรก็ได้)
(6) ผมจะแนะนำให้น้อยที่สุด (เท่าที่คิดว่าน่าจะพอเริ่มต้นได้) และจะเน้นการทดลองเขียน การเรียนรู้ด้วยตัวเอง
(7) ถ้ามีผู้ใดที่ใช้โปรแกรมนี้อยู่ และถึงขั้นเชี่ยวชาญแล้ว ก็อยากจะให้มาช่วยๆกัน แลกเปลี่ยนประสบการณ์ครับ
(8) ผู้ที่สนใจ ถ้าได้ทดลองเขียน เรียนรู้ตามไป ถ้าไม่เข้าใจ ก็ให้ post ถามในกระทู้นี้นะครับ


MathGuy เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปันความรู้และความเห็นแล้ว 1590 ครั้ง - ได้รับดาวแล้ว 314 ดวง - โหวตเพิ่มดาว

จำนวน 178 ความเห็น, หน้า่ | 1| 2| 3| 4| 5| 6| 7| 8| -9-
ความเห็นเพิ่มเติมที่ 162 13 ก.ค. 2550 (16:10)
ผมพยายามแปลง code Matlab ในการสร้างรูป Fractol ให้เป็น SCilab กรุณาช่วย
ดูและให้คำแนะนำด้วยครับ


function M=Mandelbrot(re,im,m,tol,ma);
// MANDELBROT computes and displays the Mandelbrot set
// M=Mandelbrot(re,im,m,tol,ma); computes the Mandelbrot set defined
// by the behavior of the iteration x(n+1)=x(n)^2+nu whre nu and x(n
// are complex numbers. Starting with x(0)=0 we compute all values
// nu on a grid [re(1),re(2)]x[im(1),im(2)] with grid points in each
// direction, the iteration stops if |x(n)|>tol or n=ma
// and then n defines a color of the pixel at location x(0) in the result M.

regrid(m)=0;
imgrid(m)=0;
M(m)=0;
M(m,m)=0;

// construct grid
for j=1:m,
regrid(j)= re(1) + (j-1)*(re(2)-re(1))/(m-1);
imgrid(j)= im(1) + (j-1)*(im(2)-im(1))/(m-1);
end

realpart=0;
imagpart=0;

for j=1:m,
for k=1:m,
realpart=regrid(j);
imagpart=imgrid(k);

// initialize variables for iteration
nu(1)=realpart;
nu(2)=imagpart;
re_xn=0;
im_xn=0;
re_xn1=0;
im_xn1=0;
n=0;

while sqrt(re_xn*re_xn+im_xn*im_xn)<=tol | n<ma;
// splitted into real and imaginary parts
re_xn1=(re_xn*re_xn)-(im_xn*im_xn)+nu(1);
im_xn1=(2*re_xn*im_xn)+nu(2);
re_xn=re_xn1;
im_xn=im_xn1;
n=n+1;
end;

M(j,k)=n;

end;
end;

// show picture

endfunction
22 (IP:202.12.97.111)

ความเห็นเพิ่มเติมที่ 163 19 ก.ค. 2550 (14:50)
นำไฟล์เสียง มา วาดเป็นกราฟได้รึป่าวคับ
wirachot_ben@hotmail.com (IP:222.123.68.25)

ความเห็นเพิ่มเติมที่ 164 20 ก.ค. 2550 (16:05)
code fractal จาก MatlaB ไปเป็น scilab

function Mandelbrot(iter,pixel)

// mandelbrot uses iter = 23, pixel = 400.
// MANDELBROT(ITER,PIXEL) draws the Mandelbrot set;
// ITER gives the number of iterations and
// PIXEL indicates the number of points on the x-axis.

// MANDELBROT uses iter = 23, pixel = 400.

// This file was generated by students as a partial fulfillment
// for the requirements of the course "Fractals", Winter term
// 2004/2005, Stuttgart University.

// Author : Jochen Schurr
// Date : Nov 2004
// Version: 1.0

// default setting


// decompose x- and y-axis according to the chosen
// proportion of r = 3:4.
// ใน scilab ต้องกำหนด i ด้วย มันไม่รู้จัก
i=(-1)^(0.5)
r = 3/4;
x = linspace(-2.5,1.5,pixel);
y = linspace(-1.5,1.5,round(pixel*r))';

// create the matrix C containing all pixel
// to be analysed.
[Re,Im] = meshgrid(x,y);
C = Re + i * Im;

// The matrix B assigns a number to every pixel which is
// characteristic with respect to the velocity of divergence.
// Therefore B and C have the same dimension.
B = zeros(round(pixel*r),pixel);

Cn = B; // C0 = 0+0i
for l = 1:iter
Cn = Cn.*Cn + C; // performing the map
B = B + (abs(Cn)<2); // if |cn| > 2 the sequence diverges
end;

// plot settings
Matplot(B);

endfunction
22 (IP:202.12.97.111)

ความเห็นเพิ่มเติมที่ 165 20 ก.ค. 2550 (16:12)
นี่เป็นอีก code fractal หนึ่งที่แปลงได้ครับ ตอน run ต้องกำหนด i ด้วยนะครับ

function Julia(c,k,v)

// Julia uses c = 0.2+0.65i, k = 14, v = 500.
// JULIA(C,K,V) draws the Julia set with the following parameters:
// c is a complex number used in the map f(z) = zฒ + c.
// k gives the number of iterations
// v determines the number of points on the x-axis.

// JULIA uses c = 0.2+0.65i, k = 14, v = 500.

// This file was generated by students as a partial fulfillment
// for the requirements of the course "Fractals", Winter term
// 2004/2005, Stuttgart University.

// Author : Sylvia Frey
// Date : Nov 2004
// Version: 1.1

// default settings
if rand() < 3
c = 0.2+0.65*i;
k = 14;
v = 500;
end

// radius of the circle beyond which every point diverges
r = max(abs(c),2);

// divide the x-axis
d = linspace(-r,r,v);

// create the matrix A containing complex numbers
A = ones(v,1)*d+i*(ones(v,1)*d)';

// create the point matrix
B = zeros(v,v);

// iteration
for s = 1:k
B = B+(abs(A)<=r);
// the map
A = A.*A+ones(v,v).*c;
end;

// plot settings
Matplot(B);
xset("colormap",jetcolormap(64))


endfunction
22 (IP:202.12.97.111)

ความเห็นเพิ่มเติมที่ 166 20 ก.ค. 2550 (17:41)
code ใน คหพ#164 เป็น code ที่เขียนได้กระทัดรัดมาก

ผมปรับให้เป็นดังนี้

function MDB()

x=linspace(-2.5,1.5,400);
y=linspace(-1.5,1.5,300);

[Re,Im]=meshgrid(x,y);
C=Re+%i*Im;

B=zeros(300,400);

Cn=B;

for j=1:23
Cn=Cn.*Cn+C;
B=B+(abs(Cn)<2);
end

Matplot(B)

endfunction

เมื่อ run แล้วได้ผลดังนี้
46447

MathGuy เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปันความรู้และความเห็นแล้ว 1590 ครั้ง - ได้รับดาวแล้ว 314 ดวง - โหวตเพิ่มดาว

ความเห็นเพิ่มเติมที่ 167 25 ก.ค. 2550 (21:05)
คัดลอกมาจากกระทู้ : http://www.vcharkarn.com/include/vcafe/showkratoo.php?Pid=101548

โดยคุณ gte723s
...................................................................................................................
SCILAB เป็นโปรแกรมภาษาขั้นสูงที่ถูกพัฒนาขึ้นโดยความร่วมมือกันระหว่างนักวิจัยจากสถาบัน Institut National De Recherche En Informatique Et En Automatique (INRIA) และ École nationale des ponts et chausses (ENPC) ประเทศฝรั่งเศส ตั้งแต่ปี ค.ศ. 1990 โดยมีจุดมุ่งหมายเพื่อใช้ในการคำนวณเชิงตัวเลขและแสดงผลกราฟริกที่ซับซ้อน นอกจากนี้โปรแกรม SCILAB ยังเป็นโปรแกรมที่ให้ฟรี (ไม่ต้องเสียเงินค่าลิขสิทธิ์ซอฟต์แวร์) ผู้อ่านสามารถดาวน์โหลดได้จาก http://www.scilab.org

วิธีการใช้งานโปรแกรม SCILAB ไม่ยากครับ เมื่อเข้าใจแล้วก็สามารถที่จะนำมาใช้ในการแก้ไขปัญหาทางคณิตศาสตร์ ฟิสิกส์ และวิศวกรรม ได้

ตัวอย่างเช่น การหาตัวคูณร่วมน้อยและตัวหารร่วมมาก

ถ้ากำหนดให้ p คือเวกเตอร์ของเลขจำนวนเต็มบวก (positive integer) หรือเวกเตอร์ของพหุนาม (polynomial) โปรแกรม SCILAB สามารถคำนวณหาตัวคูณร่วมน้อยและตัวหารร่วมมากได้โดยใช้คำสั่ง lcm และ gcd ตามลำดับ ตัวอย่างเช่น

-->p = int16([12 15 30]) //ทำให้เป็นเลขจำนวนเต็มขนาด 16 บิต

-->pp = lcm(p) //นั่นคือ ตัวคูณร่วมน้อยของ 12, 15, และ 30 คือ 60
pp =
60

-->qq = gcd(p) //นั่นคือ ตัวหารร่วมมากของ 12, 15, และ 30 คือ 3
qq =
3

นอกจากนี้คำสั่ง lcm และ gcd ยังสามารถใช้หาตัวคูณร่วมน้อยและตัวหารร่วมมากพหุนามได้เช่นกัน ตัวอย่างเช่น

-->x = poly(0, 'x'); //กำหนดให้ x เป็นตัวแปรพหุนาม

-->p = [x^2 – 5 * x - 14, x^2 – 12 * x + 35] //พหุนาม และ
p =
2 2
- 14 - 5x + x 35 - 12x + x

-->lcm(p)
ans =
2 3
70 + 11x - 10x + x

-->gcd(p)
ans =
- 7 + x
MathGuy เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปันความรู้และความเห็นแล้ว 1590 ครั้ง - ได้รับดาวแล้ว 314 ดวง - โหวตเพิ่มดาว

ความเห็นเพิ่มเติมที่ 168 23 ส.ค. 2550 (09:37)
Website แนะนำการใช้งานโปรแกรม SCILAB เบื้องต้น http://home.npru.ac.th/~t3058/Scilab.html
gte723s เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปันความรู้และความเห็นแล้ว 1 ครั้ง - ได้รับดาวแล้ว 150 ดวง - โหวตเพิ่มดาว

ความเห็นเพิ่มเติมที่ 169 23 ส.ค. 2550 (21:05)
ขอบคุณ คุณ gte723s ที่ให้ link แนะนำการใช้งานโปรแกรม ที่ดีมากครับ
MathGuy เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปันความรู้และความเห็นแล้ว 1590 ครั้ง - ได้รับดาวแล้ว 314 ดวง - โหวตเพิ่มดาว

ความเห็นเพิ่มเติมที่ 170 26 ส.ค. 2550 (15:49)
ขอโปรกแรม CAI graph หน่อย
B.C._Hacker_2@hotmail.com (IP:124.120.242.60)

ความเห็นเพิ่มเติมที่ 171 31 ส.ค. 2550 (21:13)
ช่วยหนูทีนะคะ..พอดีหนูทำสัมมนาเรื่องการวาดกราฟด้วย SCILAB ค่ะที่มหาวิยาลัย
โดยหนูต้องตอบคำถามอาจารย์เมื่อพูดเสร็จค่ะ..แต่หนูตอบคำถามอาจารย์ไม่ได้อยู่หลายคำถามทีเดียวค่ะ...จึงขอรบกวนอาจารย์ช่วยตอบคำถามหน่อยนะคะ...ขอบคุณล่วงหน้าค่ะ (หนูต้องตอบคำถามอาจารย์ในวันที่ 7/9/50 ค่ะ)
- SCILAB ย่อมาจากอะไรคะ..(หนูหาไม่เจอค่ะ..เลยต้องรบกวนอาจารย์ค่ะ)
- plot(y) ที่กำหนดพารามิเตอร์ x = 1 จะวาดกราฟแล้วเหมือนกับ plot (1,y) มั้ยคะ
คือหนูทดลองปรากฏว่ามันต่างกัน หนูเกรงว่าหนูจะใช้คำสั่งผิดค่ะ เลยลองถามอาจารย์ดูค่ะ
- อาจารย์คะ ใน SCILAB มีสีทั้งหมด 32 สีใช่มั้ยคะ
(กลัวจะตอบอาจารย์ผิดอ่ะค่ะเลยลองถามอาจารย์ปิยะดูค่ะเพื่อความมั่นใจ)
- อาจารย์คะ...nb_colors มีค่าสูงสุดที่ 30 ใช่มั้ยคะ เพราะว่าหนูใส่เยอะกว่านี้จะ error ค่ะ
ha_moo12@hotmail.com (IP:58.9.41.142)

ความเห็นเพิ่มเติมที่ 172 3 ก.ย. 2550 (17:40)
ถ้าต้องการเขียนภาษา c++ โจทย์ y = x^n เขียนยังไงค่ะ รบกวนท่านผู้รู้ช่วยด้วยค่ะ
sineenad_new@yahoo.com (IP:203.148.253.83)

ความเห็นเพิ่มเติมที่ 173 4 ก.ย. 2550 (20:20)
มันแสดงผลยังไงอ่ะ
- (IP:124.120.235.217)

ความเห็นเพิ่มเติมที่ 174 31 ต.ค. 2550 (15:18)
เขียน scilab ไม่เป็นทำไงดีค่ะ หนู่ได้ทำโปรเจ็กคะ Egyptian fraction คะ
ต้องเริ่มยังไงคะ
vichaiwong1@hotmail.com (IP:202.28.117.237)

ความเห็นเพิ่มเติมที่ 175 31 ต.ค. 2550 (20:08)
ตัวอย่างการหา 1/x + 1/y +1/z + 1/w =1


function EFraction(n)
for i=2:n
for j=(i+1):n
for k=(j+1):n
for m=(k+1):n
if ((j*k*m+i*k*m+i*j*m+i*j*k)==(i*j*k*m)) then
x=[i j k m]; disp(x);
end
end
end
end
end
endfunction


ผลการ run-->EFraction(100)

2. 3. 7. 42.

2. 3. 8. 24.

2. 3. 9. 18.

2. 3. 10. 15.

2. 4. 5. 20.

2. 4. 6. 12.

-->
MathGuy เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปันความรู้และความเห็นแล้ว 1590 ครั้ง - ได้รับดาวแล้ว 314 ดวง - โหวตเพิ่มดาว

ความเห็นเพิ่มเติมที่ 176 1 พ.ย. 2550 (12:43)
splitting method
สูตร 1/x = 1/x+1 + 1/x(x+1)
ให้ p/q เป็นเศษส่วนอย่างตำ โดยที่ p และ q และ p/q น้อยกว่า 1
ถ้าเขียน scilab ทำยังไงคะ
ขอบคุณคะ
vichaiwong1@hotmail.com (IP:202.28.117.237)

ความเห็นเพิ่มเติมที่ 177 2 พ.ย. 2550 (14:42)
ต้องเริ่มต้นวิเคราะห์ว่า

1) เรามีอะไร เรากำหนดอะไรก่อนบ้าง

2) เราต้องการทำให้ได้อะไร จากข้อ (1)


ตอบคำถาม 2 ข้อนี้ให้ได้ก่อนนะครับ ถึงจะเริ่มเขียนโปรแกรมได้
MathGuy เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปันความรู้และความเห็นแล้ว 1590 ครั้ง - ได้รับดาวแล้ว 314 ดวง - โหวตเพิ่มดาว

ความเห็นเพิ่มเติมที่ 178 14 พ.ย. 2550 (20:00)
ไม่เข้าใจเลยอะ ? ....
แต่กะทำไม่เปนๆ อยากฝึกบ้าง ฮิฮิ
อยากเปนโปรแกรมเมอร์ๆๆ
เด็กๆ (IP:203.146.82.209)

ความเห็นเพิ่มเติมที่ 179 19 มี.ค. 2551 (15:11)
Nice site!
Nikolet (IP:195.75.146.229)

ความเห็นเพิ่มเติมที่ 180 19 พ.ค. 2551 (21:54)
สวัสดีค่ะหนูเป็นนักศึกษาชั้นปีที่ 4 กำลังทำโปรเจคเกี่ยวกับการตรวจวัดอัตราการเต้นของหัวใจ โดยใช้โปรแกรม matlab แล้วอาจารย์ให้กราฟคลื่นหัวใจมาค่ะแล้วให้หาจุดสูงสุดและจุดต่ำสุดของกราฟ ค่ะ แต่ว่าหนูไม่มีพื้นฐานโปรแกรมที่ว่านี้เลย จึงอยากขอคำแนะนำเกี่ยวกับโค๊ดที่ใช้เขียนอะค่ะ ขอบคุณล่วงหน้ามากนะค่ะถ้าช่วยแนะนำเพราะว่าอาจารย์ให้งานมานานแล้วพยายามทำแต่ก็ทำไม่ได้สักทีอะค่ะ ขอบคุณค่ะ
unun_kukki@hotmail.com (IP:125.26.108.41)

ความเห็นเพิ่มเติมที่ 181 20 พ.ค. 2551 (16:41)

ลองเริ่มต้นง่ายๆนะครับ


สมมติว่ามีฟังก์ชัน y=f(x)=3+5x-x^2 และต้องการหาค่าสูงสุด


เราจะเขียน code หาค่าสูงสุดได้อย่างไร


 


ผมแนะนำดังนี้ครับ


- ต้องเริ่มจาก ตรวจสอบว่าเรามีพื้นฐานการเขียนโปรแกรมมาแล้วอย่างไรบ้าง


- หากไม่มีพื้นฐานเลย อันนี้ก็ต้องเริ่มต้นนับหนึ่งกันเลยทีดียว


 


ที่สำคัญ เราต้องเริ่มต้นเองก่อน หากมีปัญหา น่าจะมีคนช่วยดู ช่วยปรับ code ให้ได้


MathGuy เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปันความรู้และความเห็นแล้ว 1590 ครั้ง - ได้รับดาวแล้ว 314 ดวง - โหวตเพิ่มดาว

ความเห็นเพิ่มเติม วิชาการ.คอม

ชื่อ / email:
ข้อความ

รูปภาพ หรือ ไฟล์
กรุณาล๊อกอินก่อน เพื่อโพสต์รูปภาพ และ ใช้ LaTex ค่ะ สมัครสมาชิกฟรีตลอดชีพที่นี่
ตัวช่วย 1: CafeCode วิธีการใช้
ตัวช่วย 2: VSmilies วิธีการใช้
ตัวช่วย 3: พจนานุกรมไทย ออนไลน์ ฉบับราชบัณฑิต
ตัวช่วย 4 : dictionary ไทย<=>อังกฤษ ออนไลน์ จาก NECTEC
ตัวช่วย 5 : ดาวน์โหลด โปรแกรมช่วยพิมพ์ Latex เพื่อแสดงสมการบนวิชาการ.คอม
วิชาการ.คอม

บทความแนะนำ

Blog แนะนำ

Hot Links

ขอบคุณผู้สนับสนุน

Google
 
ติดต่อลงโฆษณา :   คุณอันนา 081 4965363
สำนักงาน :   02 2015735
อีเมล์ :   
Copyright© 2000-2007, Vcharkarn.Com. All rights reserved.
คลิ๊กเพื่อดูสถิติ
รับรองและสนับสนุนโดย

สสวท.

มูลนิธิ พสวท.

พสวท.