עזרה קטנה בMATLAB - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה קטנה בMATLAB


redead

Recommended Posts

אני צריך לבנות תוכנית נורא קטנה שמחשבת שגיאה מוחלטת של X ושל פונקציה ואותו הדבר שגיאה יחסית.

הפונקציה שלי היא X^3+2X^2+X-5 והנקודות X=5.55 X0=5.547.

function targil1(X0,X)
ans-a=abs(X0-X)
ans-b=abs(ans-a/X)
f=@(X) X.^3+2*X.^2+X-5
df=abs(f(X)-f(X0))
deltaf=abs(df/(f(x))
mazav=deltaf/ans-b
end

זה הקוד שכתבתי, שורה ראשונה אמורה לחשב את שגיאה מוחלטת של X , שורה שניה שגיאה יחסית של X , שורה שלישית זה הפונקציה , שורה 4 זה שגיאה מוחלטת של פונקציה , שורה 5 שגיאה יחסית של הפונקציה ושורה 5 מספר מצב של הפונקציה.

שאני מנסה להריץ את התוכנית אני מקבל - Undefined function or method 'targil1' for input arguments of type 'double'.

איפה בדיוק אני אמור להגדיל סוג משתנה דאבל?

תודה.[br]פורסם בתאריך: 23.10.2010 בשעה 13:07:18


טוב הסתדרתי כבר הייתה כנראה בעיה אחרת בקוד אין לי מושג מה היה הקשר לDOUBLE.

בכל מקרה התשובות שאני מקבל כרגע הם :


ansa =

0.0470


ansb =

0.0085


df =

5.3872


deltaf =

0.0237


mazav =

2.7726

מעניין אם זה נכון..[br]פורסם בתאריך: 23.10.2010 בשעה 13:15:49


שאלה אחרונה מציקה , הגודל גופן של הקוד שלי נורא נורא קטן, אין איזה דרך להגדיל את זה?
קישור לתוכן
שתף באתרים אחרים

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

קודם כל, נתחיל בזה שהמספרים שקיבלת לא נכונים, או לפחות לא מתארים שגיאה מוחלט ושגיאה יחסית.

תקן אותי אם אני טועה, אבל שגיאה מוחלטת היא מה שקראת לו ansa ו- df ושגיאה יחסית היא מה שקראת לו ansb ו- deltaf - תנסה לחשב אותם ידנית (אפילו בראש) ותראה שמתקבלות תוצאות אחרות ממה שרשמת.

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

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

2. את שתי השורות הראשונות כתבת בסדר למעט המינוסים. משתנה בשם ans-a הוא לא חוקי במטלב מכיוון שהוא מתפרש כ-"ans פחות a". אם החלפת את ans-a במילה אחרת כלשהי (למשל ansa) אז זה צריך להיות בסדר. אם עשית את זה אחרת אז זו טעות.

3. באופן כללי תדע ש-ans זו מילה שמורה במטלב אז אם אתה משתמש בה כשם משתנה זה מקור לטעויות (לעומת זאת ansa זה בסדר גמור). תשתדל פשוט לא להשתמש במילה ans כמו שהיא בתוך הפונקציות שלך.

כדי להגדיל את הפונטים במטלב תיכנס בתפריט File ל-Preferences ואז ל-Fonts ופשוט תשנה שם את גודל הפונטים.

אני מציע שתעלה לפה את הקוד אחרי ששיפצת אותו ונראה אם הוא עובד כמו שצריך.

בהצלחה :xyxthumbs:

קישור לתוכן
שתף באתרים אחרים

אם יש לי נקודה X0-5.547 ו X=5.5 , חיסור של זה בזה נותן 0.047 בערך מוחלט.

אם יש לך את שני המספרים האלה אז אתה צודק! אבל שים לב מה רשמת קודם למעלה:

הפונקציה שלי היא X^3+2X^2+X-5 והנקודות X=5.55 X0=5.547.

ולפי המספרים האלה זה היה אמור להיות 0.003...

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...