תשובות לעבודה מס' 1להגשה:
.1בכל אחת מהשאלות הבאות ,נא להעריך את הקוד MATLAB .יש להשתמש ב MATLABכדי
לבדוק את התשובות שלכם.
א .נימוק :סדר פעולות במטלב תמיד משמאל לימין ולא תמיד מתלכד עם סדר פעולות במתמטיקה!
הביטוי 10<x<20הוא תמיד נכון! כי ((10<x)<20) =10<x<20והביטוי 10<xשווה או ל 0או 1ל ואז ז.א .ש
{0,1}<20תמיד נכון! ואז התשובה היא :במקום משהיה כתוב בשאלה 1א .מספיק לכתוב כי:
if x < 10000
y = 2
else
)y = 2 + 0.1*(x - 10
end
ב.
a. 2<4<3
b. 3 ^ 2 ^ 3
c. 2 + round(6 / 9 + 3 * 2) / 2 - 3
2<4<3
)((2<4)=1)< 3 = 1 (1=true
3 ^ 2) ^ 3=729
3 ^ (2 ^ 3)= 6561
=2.5000,(6 / 9 + 3 * 2)=6.6667, round(6.6667)=7
rounds to the nearest integers
=2,(6 / 9 + 3 * 2)=6.6667, floor(6.6667)=6
rounds to the nearest integers towards minus
infinity
rounds to the nearest integers towards infinity
;)(round(-6.667)=-7; ceil(-6.667)=-6
)3.9917e+292, (eps*realmin= 4.9407e-324
)אבל:
e. 2 + ceil(6 / 9 + 3 * 2) / 2 – 3
f. eps*realmax
g. 1/0
)h. dec2bin(3^2/4
Inf (1/0*0=NaN
( 10
)תשובה נכונה :
מצה התאמה של הביטוי
הבאים:
;]0.2890
d. 2 + floor(6 / 9 + 3 * 2) / 2 - 3
0.8711,
בעזרת פקודת MATLAB nlinfitלנתונים
;]>> x= [-1, -0.5, 0, 0.5, 1, 2
y=[12.8201, 6.0157, 3.0, 1.5809,
;)>> f=@(b,x)b(1)*exp(b(2)*x)+b(3)*exp(b(4)*x
)]>> b=nlinfit(x,y,f,[1 1 1 1
= b
1.9904
-0.9981
1.0098
-1.9945
;)>> g=b(1)*exp(b(2)*x)+b(3)*exp(b(4)*x
)'>> plot(x,y,'ro',x,g,'b
15
10
5
2
באופן ויזואלי רואים שקירוב מספיק טוב!
1
0
0
-1
.3נתון ש ]- x = [1 4 8], y = [2 5 3ו A=[7 2 5;1 2 6;4 1 3] ,נא לקבוע איזה מבין הפעולות
הבאות נכונות ואם כן נכונות ,נא לבצע אותה ולקבל את התוצאה בMATLAB .
אם הפקודה לא תפעל ,נא להסביר למה שזה יקרה.
חילוק מצד שמול[2.000, 1.25, 0.375] :
Error using ==> plus
Error using ==> plus
Error using ==> minus
]1
4
8
2
5
[3
]1
4
;8
2
5
]3
3
0
5
-1
0
מינוס 2בכל המקומות 4
2
-1
1
4
1
3
שורה אחרונה
A
אותה מטריצה
מערכים לשרשר אופקי
מערכים לשרשר אנכי
סכום עבור עמודות
סכום עבור שורות
0
0
-0.4200
הסבר
:n.
x/Aקיים
5
6
3
5
6
2
2
1
2
2
7
1
4
7
1
x .\ y
x + A
x' + y
]'A - [x' y
][x , y
][x ; y
A – 2
a.
b.
c.
d.
e.
f.
g.
)h. A(end,:
)i. A(1:3,:
])j. [A ; A(1:2,:
7
2
5
7
1
2
6
1
4
1
3
4
12
5
14
[14
9
’]8
0
0
0
0
-0.2800
-0.7000
(דורשת תשומת לב!)
אך A\yלא קיים .על-פי כלל במטלב(x/A)\y=x/A\y :
])k. [A,A(:,1
)l. sum(A
)m. sum(A,2
n. x/A\y
וגם:
A is an M-by-N tall matrix where M > N, A \ B is the same as (A'*A) \ (A'*B).
If
)A is an M-by-N wide matrix where M < N, A \ B is the same as A' * ((A*A') \ B
If
.4צייר ב:MATLAB
א .משתך בתלת ממד כפתרון של משוואה exp(3 * (x -1)^2 + (y + 2)^2) - z^2 =0 :
תשובה:
בציור חשוב מאוד לבחור נכון זום ,זווית ,נקודת המבט וכן הלאה
לא לבצע זום ונקודת המבט קרוב מדי :במצב כזה האובייקט "יברח" מהמסך.
•
לא לבצע זום ונקודת המבט רחוק מדי :במצב כזה האובייקט "יזניח" מהמסך.
•
כאן אפשר להשתמש לדוגמה תחום 0<x<2, -3<y<-1,כי EXPלא גבוה מדי :
)]>> ezsurf('-exp(3/2 * (x -1)^2 + (y + 2)^2/2)',[0,2,-3,-1
;>> hold on
)]>> ezsurf('exp(3/2 * (x -1)^2 + (y + 2)^2/2)',[0,2,-3,-1
)exp(3/2 (x -1)2 + (y + 2)2/2
6
4
2
0
-2
-4
-6
-1
2
-1.5
-2
1.5
1
-2.5
0.5
0
-3
y
x
אם בחרת\ה זום לא נכון אז תרשים גם לא יהיה נכון או אפילו יהיה שגוי .לדוגמה:
)]<ezsurf('exp(3/2 * (x -1)^2 + (y + 2)^2/2)',[0,10,0,10
<Warning: Axis limits outside float precision, use ZBuffer or Painters instead. Not rendering.
פונקציות ) sin(xו)arcsin(x
ב .גרף של שתי
. 1בשני תרשימים זה על יד זה,
תשובה :חשוב מאוד לקחת בחשבון תחום הגדרה של פונקציות .כאן אפשר להשתמש לדוגמה ב:
asin
;)'ezplot('sin
sin
1.5
1
1
0.5
0.5
0
0
-0.5
-0.5
-1
-1
-1.5
1
0
x
-1
5
0
x
-5
;)>> subplot(1,2,1
;)>> subplot(1,2,2
;)'ezplot('asin
.2בתרשים אחת) גרף אחד מעל השני(
תשובה :חשוב לקחת בחשבון תחום הגדרה של כל פונקציות,
ואז ,אפשר להשתמש לדוגמה גם בפקודה:
)]ezplot('(sin(t)-x)*(asin(t)-x)',[-1,1
(sin(t)-x) (asin(t)-x) = 0
1
0.8
0.6
0.4
0.2
x
0
-0.2
-0.4
-0.6
-0.8
1
0.8
0.6
0.2
0.4
ג .גרף של אליפסה בקואורדינטות פולריות ) (r, tבאמצעות נוסחה
תשובה:
0
t
-0.2
-0.4
-0.6
-0.8
-1
-1
))r (t) =a (1 – e^2) / (1 – e* cos(t
בקואורדינטות פולריות משוואת אליפסה ,פרבולה והיפרבולה בעלת מוקד אחד בראשית הצירים היא r (t) =a (1 – e^2) / (1 – e* cos(t)) :
לאליפסה:
-aמחצית מהציר הראשי של האליפסה.
- eהאקסצנטריות של האליפסה (מספר בין 0ל ,1ככל שקרוב יותר ל 0-האליפסה יותר מעגלית וככל שקרוב ל 1-האליפסה יותר צרה)
שימו לב! רדיוס בקואורדינטות פולריות ובתוכנות מטלאב תמיד חיובי!
כאן אפשר להשתמש לדוגמה בתוכנת מטלאב:
)'))ezpolar('1/(1-0.4*cos(t
90
2
120
60
1.5
30
150
1
0.5
180
0
210
330
300
))r = 1/(1-0.4 cos(t
270
240
© Copyright 2025