در این مطلب، ویدئو روش دوبخشی در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:04:53
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,480 –> 00:00:02,240
سلام به همه در این ویدیو، ما قصد داریم
2
00:00:02,240 –> 00:00:03,360
3
00:00:03,360 –> 00:00:04,880
با استفاده از
4
00:00:04,880 –> 00:00:07,200
روش دوبخشی در پایتون مشکلی را حل
5
00:00:07,200 –> 00:00:08,800
کنیم، این را به عنوان یک تابع پایتون تنظیم می
6
00:00:08,800 –> 00:00:10,639
کنیم زیرا این به ما
7
00:00:10,639 –> 00:00:12,320
انعطاف پذیری برای استفاده مجدد از این کد
8
00:00:12,320 –> 00:00:13,040
در آینده می دهد.
9
00:00:13,040 –> 00:00:15,360
برای هر تابعی که
10
00:00:15,360 –> 00:00:16,880
از نظر تئوری پشت روش دو نیمسازی میخواهیم،
11
00:00:16,880 –> 00:00:17,359
12
00:00:17,359 –> 00:00:18,720
13
00:00:18,720 –> 00:00:20,480
از مراحلی که
14
00:00:20,480 –> 00:00:22,080
نگام حل روش تقسیم برمیداریم مطمئن نیستید، پیوندی را در توضیحات زیر میگذارم، بن
15
00:00:22,080 –> 00:00:23,119
16
00:00:23,119 –> 00:00:25,199
براین بیایید مستقیماً وارد این شو
17
00:00:25,199 –> 00:00:26,800
م تا عملکرد خود را تعریف کنیم. باید def را تایپ کنید
18
00:00:26,800 –> 00:00:28,560
و سپس نامی برای آن بگذارید، بنابراین اجازه دهید
19
00:00:28,560 –> 00:00:30,640
آن را روش bisection بنامیم،
20
00:00:30,640 –> 00:00:32,000
سپس چهار
21
00:00:32,000 –> 00:00:33,760
پارامتر خواهیم داشت، بنابراین
22
00:00:33,760 –> 00:00:35,760
کاربر ما چهار آرگومان برای برآورده کردن
23
00:00:35,760 –> 00:00:37,600
این پارامترها
24
00:00:37,600 –> 00:00:40,320
به ما می دهد، اجازه دهید ابتدا تابع تابع آنها را بپرسیم
25
00:00:40,320 –> 00:00:43,120
و کاربر ورودی را وارد می کند. این به عنوان یک رشته است،
26
00:00:43,120 –> 00:00:44,879
پس ما به برخی از مرزهایی نیاز داریم که در آن
27
00:00:44,879 –> 00:00:46,879
کاربر ما مشکوک باشد یا بداند که
28
00:00:46,879 –> 00:00:48,000
یک ریشه وجود دارد،
29
00:00:48,000 –> 00:00:50,480
بنابراین ما مرز ریشه پایینی خود را a
30
00:00:50,480 –> 00:00:52,640
و یک مرز ریشه بالایی b را اضافه می
31
00:00:52,640 –> 00:00:54,160
کنیم، سپس فقط باید ما را بدانیم.
32
00:00:54,160 –> 00:00:56,079
سطح خطای قابل قبول کاربر
33
00:00:56,079 –> 00:00:58,000
برای تفسیر رشته ای که کاربر
34
00:00:58,000 –> 00:00:59,840
به عنوان یک عبارت ریاضی قابل استفاده وارد کرده است،
35
00:00:59,840 –> 00:01:00,719
36
00:01:00,719 –> 00:01:02,719
باید تابع دیگری ایجاد
37
00:01:02,719 –> 00:01:04,799
کنیم که تابع ما را برای یک ورودی داده شده ارزیابی می کند
38
00:01:04,799 –> 00:01:05,438
39
00:01:05,438 –> 00:01:08,159
و این می تواند به این صورت انجام شود، بنابراین این روش eval
40
00:01:08,159 –> 00:01:08,640
41
00:01:08,640 –> 00:01:10,320
همان چیزی است که می توانیم برای تبدیل استفاده کنیم.
42
00:01:10,320 –> 00:01:11,680
تابع رشته وارد شده کاربر ما
43
00:01:11,680 –> 00:01:13,360
به چیزی که پایتون واقعاً می تواند
44
00:01:13,360 –> 00:01:15,360
از آن استفاده کند و آن را به عنوان یک عبارت ریاضی تفسیر کند، در مرحله
45
00:01:15,360 –> 00:01:16,799
46
00:01:16,799 –> 00:01:18,640
بعد می توانیم عبارت خطای خود را مقداردهی اولیه کنیم
47
00:01:18,640 –> 00:01:20,240
و اطمینان حاصل کنیم که
48
00:01:20,240 –> 00:01:21,759
سطح خطای فعلی کاربر کمتر از
49
00:01:21,759 –> 00:01:23,520
مقدار خطای قابل قبول آنها نیست،
50
00:01:23,520 –> 00:01:25,040
اکنون آماده ورود به آن هستیم.
51
00:01:25,040 –> 00:01:27,439
حلقه اصلی روش دوبخشی
52
00:01:27,439 –> 00:01:29,439
فرض کنید در حالی که خطای ما
53
00:01:29,439 –> 00:01:30,799
مطلق b منهای
54
00:01:30,799 –> 00:01:32,960
a بزرگتر از
55
00:01:32,960 –> 00:01:35,360
مقدار خطای قابل قبول ما است، در این حلقه پیش می رویم،
56
00:01:35,360 –> 00:01:37,840
بنابراین هر زمان که عبارت خطای ما به
57
00:01:37,840 –> 00:01:38,400
زیر
58
00:01:38,400 –> 00:01:40,320
مقدار خطای قابل قبول کاهش یابد، حلقه
59
00:01:40,320 –> 00:01:42,000
ما متوقف می شود و کاربر ما
60
00:01:42,000 –> 00:01:43,520
پاسخ خود را در
61
00:01:43,520 –> 00:01:45,840
هر حلقه دریافت می کند، ما باید ورودی
62
00:01:45,840 –> 00:01:47,920
c را که فقط نقطه وسط بین
63
00:01:47,920 –> 00:01:51,439
a و b است دوباره محاسبه کنیم. یک دستور if را شروع کنید،
64
00:01:51,439 –> 00:01:54,640
بنابراین اگر f a ضربدر f از
65
00:01:54,640 –> 00:01:57,600
b کمتر یا مساوی صفر باشد، می
66
00:01:57,600 –> 00:01:59,360
دانیم که یا بیش از یک سطر در
67
00:01:59,360 –> 00:02:01,360
حال حاضر داریم یا هیچ ریشه ای نداریم و در هر دو
68
00:02:01,360 –> 00:02:03,520
موقعیت، روش دوبخشی مفید نیست،
69
00:02:03,520 –> 00:02:04,479
70
00:02:04,479 –> 00:02:06,079
بنابراین باید به کاربر بگوییم که
71
00:02:06,079 –> 00:02:07,920
مشکل در تابع روش دوبخشی خروجی،
72
00:02:07,920 –> 00:02:08,878
73
00:02:08,878 –> 00:02:11,760
اما اگر f ضربدر f از c کمتر
74
00:02:11,760 –> 00:02:12,640
از 0 باشد،
75
00:02:12,640 –> 00:02:14,000
می دانیم که باید در آن جهت حرکت کنیم
76
00:02:14,000 –> 00:02:15,920
و بنابراین
77
00:02:15,920 –> 00:02:19,280
b مقدار وسط
78
00:02:19,280 –> 00:02:20,800
c ما را به خود می گیرد، فقط باید سطح فعلی خود را به روز کنیم
79
00:02:20,800 –>