תשובות לעבודה מס' 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 2024