ملف:Finite element method 1D illustration1.png
من testwiki
اذهب إلى التنقل
اذهب إلى البحث
حجم هذه المعاينة: ٨٠٠ × ٥٢٠ بكسل. الأبعاد الأخرى: ٣٢٠ × ٢٠٨ بكسل | ٦٤٠ × ٤١٦ بكسل | ١٬٠٠٢ × ٦٥١ بكسل.
الملف الأصلي (١٬٠٠٢ × ٦٥١ بكسل حجم الملف: ٤٢ كيلوبايت، نوع MIME: image/png)
هذا الملف من ويكيميديا كومنز ويمكن استخدامه بواسطة المشاريع الأخرى. الوصف على صفحة وصف الملف هناك معروض بالأسفل.
ملخص
نُقِلت من en.wikipedia إلى كُومُنز بواسطة Maksim.
صفحة الوصف الأصلية كانت هنا، تشير جميع أسماء المستخدمين التالية إلى en.wikipedia.
ترخيص
| Public domainPublic domainfalsefalse |
| أنا، مالِك حقوق تأليف ونشر هذا العمل، أجعله في النِّطاق العامِّ، يسري هذا في أرجاء العالم كلِّه. في بعض البلدان، قد يكون هذا التَّرخيص غيرَ مُمكنٍ قانونيَّاً، في هذه الحالة: أمنح الجميع حق استخدام هذا العمل لأي غرض دون أي شرط ما لم يفرض القانون شروطًا إضافية. |
Source code
function main () % draw an illustration for finite element method
% prepare the scrreen and define some parameters
clf; hold on; axis equal; axis off;
fontsize=30; thick_line=3; thin_line=2; black=[0, 0, 0]; red=[1, 0, 0]; blue=[0, 0, 1];
arrowsize=0.1; arrow_type=1; arrow_angle=20; % (angle in degrees)
circrad=0.01; % radius of ball showing up in places
a=0; b=1; % interval endpoints
X=a:0.01:b; f=inline('2*x.*(1-x).^1.1'); Y=f(X); % the function
h=0.2; Xh=a:h:b; Yh=f(Xh); % the linear approximation
% x and y axes
arrow([a-0.2 0], [b+0.2, 0], thin_line, arrowsize, arrow_angle, arrow_type, black)
arrow([-0.15 -0.05], [-0.15, 1.5*max(Y)], thin_line, arrowsize, arrow_angle, arrow_type, black)
% plot the graphs
plot(X, Y, 'linewidth', thick_line); % mesh, and the function
plot(Xh, Yh, 'linewidth', thick_line, 'color', red)
%% place some dashed lines
for i=2:(length(Xh)-1)
plot([Xh(i) Xh(i)], [0, Yh(i)], 'linewidth', thin_line, 'linestyle', '--', 'color', 'black');
end
% some balls for beauty
ball(a, 0, circrad, black);
ball(b, 0, circrad, black);
for i=2:(length(Xh)-1)
ball(Xh(i), 0, circrad, black);
end
%% place text
tiny=0.07;
H=text(a+0.07, -tiny, 'x_0=0'); set(H, 'fontsize', fontsize, 'HorizontalAlignment', 'r', 'VerticalAlignment', 'top');
H=text(b-0.07, -tiny, 'x_5=1'); set(H, 'fontsize', fontsize, 'HorizontalAlignment', 'l', 'VerticalAlignment', 'top');
for i=2:(length(Xh)-1)
H=text(Xh(i), -tiny, sprintf('x_%d', i-1));
set(H, 'fontsize', fontsize, 'HorizontalAlignment', 'c', 'VerticalAlignment', 'top');
end
saveas(gcf, 'Finite_element_method_1D_illustration1.eps', 'psc2') % export to eps
function ball(x, y, r, color)
Theta=0:0.1:2*pi;
X=r*cos(Theta)+x;
Y=r*sin(Theta)+y;
H=fill(X, Y, color);
set(H, 'EdgeColor', 'none');
function arrow(start, stop, thickness, arrow_size, sharpness, arrow_type, color)
% Function arguments:
% start, stop: start and end coordinates of arrow, vectors of size 2
% thickness: thickness of arrow stick
% arrow_size: the size of the two sides of the angle in this picture ->
% sharpness: angle between the arrow stick and arrow side, in degrees
% arrow_type: 1 for filled arrow, otherwise the arrow will be just two segments
% color: arrow color, a vector of length three with values in [0, 1]
% convert to complex numbers
i=sqrt(-1);
start=start(1)+i*start(2); stop=stop(1)+i*stop(2);
rotate_angle=exp(i*pi*sharpness/180);
% points making up the arrow tip (besides the "stop" point)
point1 = stop - (arrow_size*rotate_angle)*(stop-start)/abs(stop-start);
point2 = stop - (arrow_size/rotate_angle)*(stop-start)/abs(stop-start);
if arrow_type==1 % filled arrow
% plot the stick, but not till the end, looks bad
t=0.5*arrow_size*cos(pi*sharpness/180)/abs(stop-start); stop1=t*start+(1-t)*stop;
plot(real([start, stop1]), imag([start, stop1]), 'LineWidth', thickness, 'Color', color);
% fill the arrow
H=fill(real([stop, point1, point2]), imag([stop, point1, point2]), color);
set(H, 'EdgeColor', 'none')
else % two-segment arrow
plot(real([start, stop]), imag([start, stop]), 'LineWidth', thickness, 'Color', color);
plot(real([stop, point1]), imag([stop, point1]), 'LineWidth', thickness, 'Color', color);
plot(real([stop, point2]), imag([stop, point2]), 'LineWidth', thickness, 'Color', color);
end
| date/time | username | edit summary |
|---|---|---|
| 01:53, 29 December 2005 | en:User:Oleg Alexandrov | (+source code) |
| 01:30, 29 December 2005 | en:User:Oleg Alexandrov |
سجلُّ الرَّفع الأصيل
Legend: (cur) = this is the current file, (del) = delete this old version, (rev) = revert to this old version.
Click on date to download the file or see the image uploaded on that date.
- (del) (cur) 01:51, 29 December 2005 . . en:User:Oleg_Alexandrov Oleg Alexandrov ( en:User_talk:Oleg_Alexandrov Talk) . . 1002x651 (43514 bytes)
- (del) (rev) 01:50, 29 December 2005 . . en:User:Oleg_Alexandrov Oleg Alexandrov ( en:User_talk:Oleg_Alexandrov Talk) . . 1002x636 (43741 bytes)
- (del) (rev) 01:49, 29 December 2005 . . en:User:Oleg_Alexandrov Oleg Alexandrov ( en:User_talk:Oleg_Alexandrov Talk) . . 1002x636 (43741 bytes)
- (del) (rev) 01:48, 29 December 2005 . . en:User:Oleg_Alexandrov Oleg Alexandrov ( en:User_talk:Oleg_Alexandrov Talk) . . 1002x636 (43572 bytes)
- (del) (rev) 01:30, 29 December 2005 . . en:User:Oleg_Alexandrov Oleg Alexandrov ( en:User_talk:Oleg_Alexandrov Talk) . . 1002x636 (43572 bytes)
الشروحات
أضف شرحاً من سطر واحد لما يُمثِّله هذا الملف
العناصر المصورة في هذا الملف
يُصوِّر
تاريخ الملف
اضغط على زمن/تاريخ لرؤية الملف كما بدا في هذا الزمن.
| زمن/تاريخ | صورة مصغرة | الأبعاد | مستخدم | تعليق | |
|---|---|---|---|---|---|
| حالي | ٢١:٠١، ١٨ مارس ٢٠٠٦ | ١٬٠٠٢ × ٦٥١ (٤٢ كيلوبايت) | wikimediacommons>Maksim | La bildo estas kopiita de wikipedia:en. La originala priskribo estas: == Licensing == {{PD-self}} ==Source code== <pre> <nowiki> function main () % draw an illustration for finite element method % prepare the scrreen and define some parameters clf; |
استخدام الملف
الصفحة التالية تستخدم هذا الملف: