Math Tools - כלים מתמטיים
description
Transcript of Math Tools - כלים מתמטיים
מבוא לתכנות בעזרתMatLab
פתרון משוואות ומציאת אינטגרלים
0.2/26
פתרון משוואות, מציאת אינטגרלים
,פתרון משוואות לא ליניאריות,פתרון מערכת משוואות לא ליניאריות.אינטגראציה
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
0.3/26
,פתרון משוואות לא ליניאריותפתרון מערכת משוואות לא ליניאריות,.אינטגראציה
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
פתרון משוואות, מציאת אינטגרלים
0.4/26 פתרון משוואות לא ליניאריות של פולינום0 – מציאת roots פונקציה
x=roots([ ווקטור של מקדמי([הפולינום
>>x=roots([1 0 -4])
x =
2.0000
-2.0000
>>
y=x2-4
:1דוגמא
: MatLabב-
ווקטור המקדמים של הפולינום
0.5/26
<< k =
1 2 -21 18
>> x=roots(k)
x =
-6.0000
3.0000
1.0000
rootsהמשך -
y=x3+2x2-21x+18:2דוגמא
:MatLabב-
ווקטור המקדמים של הפולינום
0.6/26
<< k=[-1 0 3 4.5 -5 0 1.5];
>> x=roots(k)
x =
2.0229
-1.3726 + 1.1308i
-1.3726 - 1.1308i
0.6010 + 0.3573i
0.6010 - 0.3573i
-0.4796
דוגמא 3
rootsהמשך -
בגרף לא תמיד ניתן להציג את הנקודות הדרושות
:MatLabב-ווקטור המקדמים
של הפולינום
0.7/26 fzero של פונקציה בסביבת 0 - מנסה למצוא x0
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
x1=fzero(‘ נוסחה של(x0,’פונקציה
>>x1=fzero('x.^2-4',1.5)
x1 =
2
>>x2=fzero('x.^2-4',2.3)
x2 =
-2
דוגמא 4
בסביבת x0=1.5
בסביבת x0=2.3
y=x2-4
0.8/26
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
y=cos(x): 5דוגמא
>>x=0:pi/16:2*pi;
>> y=cos(x);
>> plot(x,y)
>> grid
של 0על הגרף ניתן לראות שנקודות ה- ו- x=1.5הפונקציה נמצאות בסביבת
x=4.5
0.9/26 5דוגמא
)המשך(
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
>> xx=fzero('cos(x)',1.5)
xx =
1.5708
>>xx=fzero('cos(x)',4.5)
xx =
4.7124
למציאת השורשים בסביבת הנקודות שראינו על fzeroנעזר ב-הגרף
0.10/26 6דוגמא
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
]0.8 : 0.4[ניקח תחום
xx=fzero('exp(x)-2‘, 0.4, 0.8)xx = 0.6931
לפעמים לא קל למצוא על הגרף את אשר בסביבתה צריך לחפש x0הנקודה
את שורשי הפונקציה -Xאבל תמיד אפשר לראות את תחום ה-
ים בהם הפונקציה משנה את סימנה – בתחום זה נמצא השורש שלה.
y=ex-2
באופן כללי, אם פונקציה משנה :]a, b[את סימנה בתחום
xx=fzero(‘נוסחת הפונקציה',a, b) x=0:0.1:5;
y=exp(x)-2; plot(x,y);grid;
0.11/26 7דוגמא
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
y=xcos(5pix/8)+tan(pix/6);
function a=f1(x);
a=x.*cos(5*pi*x/8)+tan(pi*x/6);
במקרה של פונקציה מורכבת רושמים אותה
, ז"א, יוצרים m-fileב- חדשהMatLabפונקצית
:Editorב-
: 0.1[-בתחום 2/3π[
0.12/26 7דוגמא
)המשך(
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
y=x.*cos(5*pi*x/8)+tan(pi*x/6);
>> xx=fzero(@f1,1,1.5)xx = 1.1238
>> xx=fzero(@f1,1.8,2.1)xx = 1.9130
>> xx=fzero(@f1,0,0.5)xx = 0
]0.5 : 0[בתחום
]1.5 : 1[בתחום
]2.1 : 1.8[בתחום
Command Windowמפעילים ב-(או בתכנית ראשית)
: 0.1[-בתחום 2/3π[
0.13/26 דוגמא 8
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
y=sin(4x) ]π/3 : π/3[-בתחום
x=-pi/3:pi/36:pi/3;y=sin(4*x);plot(x,y); grid;legend('f=sin(4x)');
0.14/26 )המשך( – פונקציה 8דוגמא fsolve
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
>> xx1=fsolve('sin(4*x)',[-1 0 1])Optimization terminated: first-order optimality is less than options.TolFun.xx1 = -0.7854 0 0.7854
X=fsolve(‘נוסחת פונקציה’,x0);
X0 של נקודות אשר בסביבתן ווקטור יכול להיות של פונקציה.0מחפשים
0ז"א, אפשר בפקודה אחת למצוא יותר מנקודת אחת!
>> xx1=fsolve('sin(4*x)‘,[-1 0 1],optimset('Display','off'))xx1 = -0.7854 0 0.7854
אפשר להסתיר את הודעות
המערכת
0.15/26
,פתרון משוואות לא ליניאריותפתרון מערכת משוואות לא ליניאריות,.אינטגראציה
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
פתרון משוואות, מציאת אינטגרלים
0.16/26 דוגמא 9
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
>> x=-4:0.1:4;>> y=1-3*x;>> y1=-sqrt(16-x.^2);>> y2=sqrt(16-x.^2);>> plot(x,y,x,y1,x,y2);grid;>>axis([-4 4 -4 4]);
מציאת נקודות x2+y2=16חיותך
3x+y-1=0
0.17/26 9דוגמא )המשך(
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
כדי להכין קובץ-פונקציה למערכת המשוואות, נשנה אותה למערכת
הבאה:
function f=fun2(x)
f(1)=x(1)^2+x(2)^2-16;
f(2)=3*x(1)+x(2)-1;
יוצרים MatLab של Editorב-את הפונקציה:
x2+y2=163x+y-1=0
0.18/26 9דוגמא )המשך(
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
>> point1=fsolve(@fun2,[-1 4],optimset('Display','off'))point = -0.9610 3.8829
משוער - Y0 משוער ו-X0 מכיל ערכים של ]4 1[-הפעם ווקטור שבסביבתה מחפשים את נקודת החיתוך )1,4(-הנקודה
שיעורים של נקודת החיתוך2 הם point1ושני ערכים של
, -4(נחפש את נקודת החיתוך השנייה בסביבת נקודה אחרת: 1(
>>point2=fsolve(@fun2,[4 -1],optimset('Display','off'))point2 = 1.5610 -3.6829
x2+y2=163x+y-1=0
0.19/26 דוגמא 10
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
>> x=-4:0.1:4;>> y=exp(x)-2;>> y1=-sqrt(16-x.^2);>> y2=sqrt(16-x.^2);>> plot(x,y,x,y1,x,y2);grid;>>axis([-4 4 -4 4]);
מציאת נקודות x2+y2=16חיותך
y=ex-2
0.20/26 10דוגמא )המשך(
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
>> p=fsolve(@f4,[2 3.5], optimset('Display','off')) p = 1.7244 3.6092
function f= f4(x);
f(1)=exp(x(1))-x(2)-2;
f(2)=x(1).^2+x(2).^2-16;
>> p=fsolve(@f4, [-3.5 -2], optimset('Display','off')) p = -3.4817 -1.9692
x2+y2=16y=ex-2
:Editorב-
או Command Windowב-בתכנית ראשית
0.21/26
,פתרון משוואות לא ליניאריות,פתרון מערכת משוואות לא ליניאריותאינטגראציה.
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
פתרון משוואות, מציאת אינטגרלים
0.22/26
אינטגרל מסוים
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
אינטגרל מסוים הוא שטח תחת העקומה
0.23/26 חישוב אינטגרל בשיטת סכומי רימן
rsums(‘נוסחת פונקציה’, a, b)
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
הפונקציה מחשבת אינטגרל של f(x) בשיטת סכומי רימן בתחום בין
a-ל b
ומשרטט את השטח
0.24/26 סכומי רימן - דוגמא 11
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
>>rsums(‘x^2’,0,1)
0.25/26
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
סכומי רימן - דוגמא 12
>> rsums('exp(x)-2',0,1)
0.26/26 חישוב אינטגרל בשיטת סכומי 13טרפז דוגמא
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
2sin(x)dx
π
0
a = trapz(x,f) מחשבת אינטגרל של תוך X בתחום Fפונקציה
שימוש בשיטת סכומי הטרפז
>> X = 0:pi/100:pi;>>F = sin(X);
>>res = trapz(X,F)
res =
1.9998
0.27/26 חישוב אינטגרל בשיטת סכומי 14סימפסון דוגמא
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
q = quad(fun, a, b) מחשבת אינטגרל של a בתחום בין funפונקציה
bלבין
>> format short g>> Q = quad('100*exp(3.1*t)',0,2)Q = 15863
מהירות הגידול של מיקרואורגניזמים מתוארת
כאשר tהוא מספר שעות בנוסחה
שעות2מצא כמות המיקרואורגניזמים בעוד
3.1te1v(t) 00
0.28/26 15דוגמא
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
dxe x 2
1
2 בשיטות ניקח אינטגרל ונחשב אותושונות
שיטת רימן
rsums(‘exp(-x^2)’,1,2);
0.29/26 15דוגמא )המשך(
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
dxe x 2
1
2
>> x=1:0.01:2;>> y=exp(-x.^2);>> trapz(x,y)
ans =
0.1353
טרפז שיטת
0.30/26 15דוגמא )המשך(
MatLabמבוא לתכנות בעזרת (22100)
אורט בראודה – הנדסת מכונות
dxe x 2
1
2
>> quad('exp(-x.^2)',1,2)
ans =
0.1353
שיטתסימפסון
מבוא לתכנות בעזרת MatLab
פתרון משוואות, מציאת אינטגרלים
הסוף