จากนั้นจึงใช้คำสั่ง diff() >> syms x

Download Report

Transcript จากนั้นจึงใช้คำสั่ง diff() >> syms x

ปฏิบตั ิการคอมพิวเตอร์เรื่ อง
การหาค่าอินติกรัลเชิงตัวเลข
การหาค่าอนุพนั ธ์เชิงตัวเลข
อ.ดร.ชโลธร ธรรมแท้
สาขาวิชาวิศวกรรมเครื่ องกล มหาวิทยาลัยเทคโนโลยีสุรนารี
กฎสี่ เหลี่ยมคางหมูหลายช่วง
b
I 

a
f ( x ) dx
โปรแกรม Trap.m
กฎของซิมป์ สันแบบหลายช่วง
b
I 

a
f ( x ) dx
I 
h
3
n 1
[ f ( x0 )  4

i 1 , 3 , 5
n2
f ( xi )  2

f ( x i )  f ( x n )]
i 2,4,6
แบบฝึ กหัด
จากสมการทีก่ าหนดจงหาค่าอินติกรัลของ f(x)
จาก 0 ถึง 0.8
1. ใช้ กฎสีเ่ หลีย่ มคางหมู n=4 ช่วง และ 8 ช่วง
2. ใช้ กฎของซิมป์สนั 1/3 n=4 ช่วง (download
simson13.m ได้จาก web สาขา)
3. เปรียบเทียบผลทีไ่ ด้ กับค่าจริงคือ 1.640533
MATLAB function: int()
• ทดลองพิมพ์ คาสั่งต่ อไปนี ้
>> int(‘x^2’)
>> int('sin(x)’)
>> int('2*x^3-5*x^2+3*x+1’ , 0,2)
• ผลลัพธ์ ท่ ไี ด้ คืออะไร
MATLAB function: trapz()
• การอินติเกรทเชิงตัวเลขด้ วย สี่เหลี่ยมคางหมู
>> x=linspace(0,2,4)
>> f=2*x.^3-5*x.^2+3*x+1
>> trapz(x,f)
ค่าอนุพนั ธ์เชิงตัวเลข
f ( x i ) 
f ( x i ) 
f ( x i ) 
f ( x i ) 
f ( x i 1 )  f ( x i )
Forward difference
 O (h)
h
f ( x i )  f ( x i 1 )
 O (h)
h
f ( x i  1 )  f ( x i 1 )
Backward difference
Central difference
 O (h )
2
2h
f ( x i  1 )  2 f ( x i )  f ( x i 1 )
h
2
 O (h )
2
Central difference
โปรแกรม centralDiff.m
แบบฝึ กหัด: จงหาค่าอนุพนั ธ์อนั ดับ 1 และ อันดับ 2 ของฟั งก์ชนั
f ( x )  1 . 5 sin( 2 x )
x
ที่ x=2 เปรี ยบเทียบกันระหว่าง h=0.1 และ h=0.01
MATLAB function: diff()
• หากต้ องการ diff ฟั งก์ ชันของตัวแปร x อันดับแรกต้ องระบุว่า
x เป็ นสัญลักษณ์ (symbolic)
• จากนัน้ จึงใช้ คาสั่ง diff()
>> syms x
>> diff ( sin(2*x) )
>> diff(1.5^x*sin(2*x))