עבור לתוכן

צריך הסבר על קוד קצר במטלאב

Featured Replies

פורסם

יש לי פונקציה ו2 נקודת.

אני צריך למצוא 5 דברים :

- שגיאה מוחלטת ויחסית של X

-שגיאה מוחלטת ויחסית של F

-מספר מצב של הפונקציה

הנקודות שלי הם : X=5.55 ; X0=5.547

פונקציה : X^3+2X^2+X-5

עכשיו יש לי את הקוד הבא , נראה לי שאת 4 הדברים הראשונים שאני צריך מצוא עשיתי נכון ( השמח לקבל אישור על זה)

בקשר למציאת מספר מצב של הפונקציה קצת הסתבכתי והשמח לקבל עזרה.


function [dx,deltax,df,deltaf,con]=ex1(x,x0)
x=5.55; %ערך הX
x0=5.547; % ערך הX0
dx=abs(x-x0) % שגיאה מוחלטת
deltax=dx/abs(x) % שגיאה יחסית
f=@(x) x.^3+2*x.^2+x-5; % פונקציה F
df=abs(f(x)-f(x0)) % שגיאה מוחלקת עבור פונקציה F
deltaf=df/abs(f(x)) %שגיאה יחסית עבור פונקציה F
DF=abs(df/dx)
con=abs((x*DF)/f(x))
end

עידכון , מצאתי שהנוסע למספר מצב זה X*נגזרת של פונקציה X חלקי פונציקה של X ואני מנסה לכתוב את זה ככה :


con=abs(x)*diff(f)/abs(f(x))

ואני מקבל שגיאה

??? Error using ==> diff

Function 'diff' is not supported for class 'function_handle'.

Error in ==> ex1 at 12

con=abs(x)*diff(f)/abs(f(x))

ככה שאין לי מושג מה עושים

אני ישמח לקבל עזרה ,תודה.

  • 5 שבועות מאוחר יותר...
פורסם

הגדרת את f בתור function handle והתוצאה הינה פוינטר לפונקציה.

על פונקציה כזאת אי אפשר לעשות DIFF.

א. תגדיר ציר X שמכיל את הנקודות הרלוונטיות. למשל:

x=5.5:0.001:5.6

ב. תגדיר:

f=x.^3+2*x.^2+x-5

עכשיו יש לך פונקציה שאתה יכול לגזור או לעשות מה שתרצה.

אגב, בDIFF אני חושב שאתה מקצץ את הוקטור, כלומר צריך להוסיף איבר בסוף או בהתחלה כי מדובר על הפרשים.

מקווה שזה עוזר

פורסם

אומנם עבר חודש מאז שהוא פרסם את השאלה, אבל אם זה עדיין רלוונטי:

diff היא פונקציה שכמו שזריזי אמר מקבלת וקטור באורך N ומחזירה וקטור הפרשים באורך N-1.

זו אינה הנגזרת!

הנגזרת מוגדרת כ-dy/dx ולכן הנוסחא הנכונה לנגזרת היא:

diff(f(x))/(x(2)-x(1))

כאשר המכנה מייצג את המרווח בין שני איברים בוקטור x (זה בדיוק dx) ומכיוון שהוא קבוע אפשר לבחור אילו שני איברים עוקבים שרוצים בתנאי שדואגים שהסימן יהיה חיובי.

אם משתמשים בנגזרת מאוחר יותר חייבים לוודא שהמימדים מתאימים. למשל אם מחלקים את הנגזרת (וקטור באורך N-1) בפונקציה (אורך N) כדאי לקצץ את האיבר הראשון או האחרון בפונקציה. לא כדאי להוסיף איבר מלאכותי לוקטור הנגזרת מכיוון שלא תהיה לו משמעות אמיתית ובישומים מעשיים זה יוצר בעיות.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים