ดูหนึ่งข้อความ
  #2  
Old 04 กุมภาพันธ์ 2011, 15:21
เรียวคุง เรียวคุง ไม่อยู่ในระบบ
หัดเดินลมปราณ
 
วันที่สมัครสมาชิก: 03 กรกฎาคม 2006
ข้อความ: 38
เรียวคุง is on a distinguished road
Default

ผมใช้ code ข้างล่างนี้ รันโดยใช้ matlab ปรากฏว่าผลรันจะช้าเมื่อ ค่า n โตมากขึ้น (พจน์ที่เกิดจากการอินทิเกรตแต่ละรอบเพิ่มมากขึ้น )
ผมจึงใคร่ขอคำแนะนำจากผู้เชี่ยวชาญ ว่าควรทำยังไง ปรับเปลี่ยนในส่วนใดได้บ้าง เพื่อให้ได้ผลรันเร็วขึ้นครับ
ต้องการค่า n 50 ค่า แรก ครับ

clc; clear
u=0;p=0.5;c0=1.25; lamda0=1; %กำหนดค่าคงที่
Ruin=[]; %กำหนดเมทริกซ์เพื่อรับค่า รูอิน
syms x1 x2 lamda c %บอกตัวแปรเพื่ออินทเกรต
f=exp(lamda*c)+(1-p)+lamda*p*(x2+c) %f คือ a_1(x1)
Ruin(1)=p*exp(-lamda0*(u+c0));
Ruin(2)=p*exp(-lamda0*(u+2*c0))*(exp(lamda0*c0)+(1-p)+lamda0*p*(u+c0));
for n=3:8 % กำหนดค่า n=5
f0=f;
f00=(1-p)*subs(f0,x2,'x2+c')+lamda*p*int(f0,x2,[0],[x2+c]);
f=exp((n-1)*lamda*c)+f00;
g=p*exp(-lamda*(x2+c0))+p*exp(-lamda*n*c-lamda*x2)*f00;
Ruin(n)=subs(g,[x2 lamda c],[u lamda0 c0]);
[n Ruin(n)]
end
Ruin'
__________________
เรียวคุง
ตอบพร้อมอ้างอิงข้อความนี้