לדלג לתוכן

קובץ:ODE Exp Imp Euler method.svg

תוכן הדף אינו נתמך בשפות אחרות.
מתוך ויקיפדיה, האנציקלופדיה החופשית

לקובץ המקורי(קובץ SVG, הגודל המקורי: 1,200 × 900 פיקסלים, גודל הקובץ: 10 ק"ב)

ויקישיתוף זהו קובץ שמקורו במיזם ויקישיתוף. תיאורו בדף תיאור הקובץ המקורי (בעברית) מוצג למטה.

תקציר

תיאור
English: Compares the forward/explicit and backward/implicit Euler methods for the numerical solution of the ODE y'(x)=-200*(y-cos(x))-sin(x), y(0)=1. With the substituton z=y-cos(x), the ODE z'=-200*z, z(0)=0, results. Numerical integration of the second ODE should always result in the constant 0. By the nonlinear substitution in the first ODE, numerical errors are introduced in every step that are magnified by the factor 200. For not too small stepsizes, this results in explosive behavior of the explicit method whereas the implicit method remains close to the exact solution.
תאריך יצירה
מקור נוצר על־ידי מעלה היצירה
יוצר LutzL


רישיון

אני, בעל זכויות היוצרים על היצירה הזאת, מפרסם אותה בזאת תחת הרישיונות הבאים:
w:he:Creative Commons
ייחוס שיתוף זהה
הקובץ הזה מתפרסם לפי תנאי רישיון קריאייטיב קומונז ייחוס-שיתוף זהה 3.0 לא מותאם.
הנכם רשאים:
  • לשתף – להעתיק, להפיץ ולהעביר את העבודה
  • לערבב בין עבודות – להתאים את העבודה
תחת התנאים הבאים:
  • ייחוס – יש לתת ייחוס הולם, לתת קישור לרישיון, ולציין אם נעשו שינויים. אפשר לעשות את זה בכל צורה סבירה, אבל לא בשום צורה שמשתמע ממנה שמעניק הרישיון תומך בך או בשימוש שלך.
  • שיתוף זהה – אם תיצרו רמיקס, תשנו, או תבנו על החומר, חובה עליכם להפיץ את התרומות שלך לפי תנאי רישיון זהה או תואם למקור.
GNU head מוענקת בכך הרשות להעתיק, להפיץ או לשנות את המסמך הזה, לפי תנאי הרישיון לשימוש חופשי במסמכים של גנו, גרסה 1.2 או כל גרסה מאוחרת יותר שתפורסם על־ידי המוסד לתוכנה חופשית; ללא פרקים קבועים, ללא טקסט עטיפה קדמית וללא טקסט עטיפה אחורית. עותק של הרישיון כלול בפרק שכותרתו הרישיון לשימוש חופשי במסמכים של גנו.
הנכם מוזמנים לבחור את הרישיון הרצוי בעיניכם.

Source

Using a small C program and gnuplot.

exp_imp_euler.c

/*
implizites und explizites Eulerverfahren für y'(x)=-2000*(y-cos(x))-sin(x)

*/

#include<stdio.h>
#include<math.h>

#define ALPHA 200

double f(double x,double y) {
	return -ALPHA*(y-cos(x))-sin(x);
	}
	
double explicit(double x,double y,double h) {
	return y+h*f(x,y);
}
	
double implicit(double x,double y, double h) {
	/* solve yp=y+h*f(xp,yp) for yp
		explicit solution is
		y=yp-h*f(xp,yp)
		 =(1+2000*h)*yp-2000*h*cos(xp)+h*sin(xp)
	*/
	double xp=x+h;
	
	return (y+h*(ALPHA*cos(xp)-sin(xp)))/(1+ALPHA*h);
}


int main(){
	double x,ye,yi,h;
	
	FILE *fp=fopen("imp_euler.dat","w");
	
	x=0; ye=yi=1; h=1.2e-2;
	
	for(;x<1; x+=h){
		fprintf(fp,"%8.5f\t%8.5f\t%8.5f\t%8.5f\n",x,cos(x),ye,yi);
		ye=explicit(x,ye,h);
		yi=implicit(x,yi,h);
	}
	return 0;
}

gnuplot commands

set term push
set term svg size 1200,900 fsize 28 linewidth 2

set output "exp_imp_euler.svg"

pl [:] [0:2] 'imp_euler.dat' u 1:3 ti 'explizit' w po pt 3, 'imp_euler.dat' u 1:4 w lin lt 3 lw 3 ti 'implizit'

unset outp
set term pop

כיתובים

נא להוסיף משפט שמסביר מה הקובץ מייצג

פריטים שמוצגים בקובץ הזה

מוצג

היסטוריית הקובץ

ניתן ללחוץ על תאריך/שעה כדי לראות את הקובץ כפי שנראה באותו זמן.

תאריך/שעהתמונה ממוזערתממדיםמשתמשהערה
נוכחית19:30, 4 ביולי 2010תמונה ממוזערת לגרסה מ־19:30, 4 ביולי 2010‪900 × 1,200‬ (10 ק"ב)LutzL{{Information |Description={{en|1=Compares the forward/explicit and backward/implicit Euler methods for the numerical solution of the ODE y'(x)=-200*(y-cos(x))-sin(x), y(0)=1. With the substituton z=y-cos(x), the ODE z'=-200*z, z(0)=0, results. Numerica

אין בוויקיפדיה דפים המשתמשים בקובץ זה.

שימוש גלובלי בקובץ

אתרי הוויקי השונים הבאים משתמשים בקובץ זה:

מטא־נתונים