תכנות נומרי עם Matlab ו-Octave/פונקציות: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
אין תקציר עריכה |
אין תקציר עריכה |
||
שורה 54:
* run name.m - הפקודה תריץ קובץ בשם name
* save - שמירה של קובץ
=פונקציות מתמטיות==
ניתן לבנות פונקציות מתמטיות עם שימוש בתו @
מבנה:
<source lang="text">
<משתנה2><פעולות מתמטיות><משתנה1> (<משתנה2>,<משתנה1>)@=<שם הפונקציה>
</source>
נבנה פונקציה y=2+x
<source lang="text">
>>y = @(x) 2+x;
>>y(2)
ans = 4
</source>
נבדוק x=2
<source lang="text">
ans=
y(2)
</source>
אם רוצים לראות את הפונקציה שיצרנו :
<source lang="text">
>>y
y =
@(x) 2 + x
</source>
כעת נבדוק מיהו y
<source lang="text">
octave:20> whos y
*** local user variables:
Prot Name Size Bytes Class
==== ==== ==== ===== =====
rwd y 1x1 0 function_handle
Total is 1 element using 0 bytes
</source>
שימו לב שאין השפעה על משתנה בשם x:
<source lang="text">
octave:39> x
error: `x' undefined near line 39 column 1
</source>
לא קיים משתנה בשם הזה. אם היה קיים, הוא לא היה מושפע מהפונקציה.
דוגמה נוספת:
<source lang="text">
octave:23> y=@(a,b) (a+b)^2
y =
@(a, b) (a + b) ^ 2
octave:26> y(1,2)
ans = 9
</source>
כאשר קיים יותר ממשתנה אחד בפונקציה, צריך לפנות אליהם לפי סדר ההופעה בהגדרה.
ניתן להשתמש במשתנים יותר מפעם אחת :
<source lang="text">
octave:32> y=@(a,b) (a+b)^2+ab
y =
@(a, b) (a + b) ^ 2 + ab
octave:33> y(1,4)
error: `ab' undefined near line 32 column 18
error: evaluating binary operator `+' near line 32, column 17
error: called from `?unknown?'
</source>
התוכנה לא מכירה את הביטוי ab ומתייחסת אלו בתור משתנה חדש
נשתמש בסימן הכפל:
<source lang="text">
octave:33> y=@(a,b) (a+b)^2+a*b
y =
@(a, b) (a + b) ^ 2 + a * b
octave:34> y(1,4)
ans = 29
</source>
נבדוק עם מספרים מרוכבים:
<source lang="text">
octave:27> y(5+2i,8)
ans = 165 + 52i
</source>
ניתן ליצור פונקציות מורכבות לדוגמה:
{{להשלים}}
|