Interpolasi linear berbatas ujung
Interpolasikan antar titik yang meningkat ketat dan batasi kueri luar pada ujungnya.
from math import isfinite
def interpolate(points, query):
def valid(x):
return type(x) in (int, float) and abs(x) <= 10**12 and isfinite(x)
if type(points) is not list or len(points) < 2 or not valid(query):
raise ValueError("knots.input")
if any(type(p) not in (list, tuple) or len(p) != 2 or
not all(valid(v) for v in p) for p in points):
raise ValueError("knots.point")
if any(a[0] >= b[0] for a,b in zip(points, points[1:])):
raise ValueError("knots.order")
if query <= points[0][0]:
return points[0][1]
for (x0,y0),(x1,y1) in zip(points, points[1:]):
if query <= x1:
t = (query-x0)/(x1-x0)
return (1-t)*y0+t*y1
return points[-1][1]| Proyek | Uji titik tepat dan tolak koordinat berulang, nilai tak terhingga atau magnitudo di atas satu triliun sebelum mencampur secara linear. |
|---|---|
| Tinjau sebelum menerapkan | Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain. |
| Model | Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah. |
from math import isfinite
def interpolate(points, query):
def valid(x):
return type(x) in (int, float) and abs(x) <= 10**12 and isfinite(x)
if type(points) is not list or len(points) < 2 or not valid(query):
raise ValueError("knots.input")
if any(type(p) not in (list, tuple) or len(p) != 2 or
not all(valid(v) for v in p) for p in points):
raise ValueError("knots.point")
if any(a[0] >= b[0] for a,b in zip(points, points[1:])):
raise ValueError("knots.order")
if query <= points[0][0]:
return points[0][1]
for (x0,y0),(x1,y1) in zip(points, points[1:]):
if query <= x1:
t = (query-x0)/(x1-x0)
return (1-t)*y0+t*y1
return points[-1][1]Jaga perilaku numerik agar konsisten dengan pemanggilnya
KnotVista menyediakan ruang kerja pemrograman Windows untuk pemeliharaan numerik, dengan percakapan berbantuan model tentang berkas Anda. Mulailah dari harapan komponen pengguna hasil perhitungan, termasuk domain masukan dan perilaku batasnya. Ini menetapkan sasaran peninjauan yang berguna sebelum meminta asisten menyederhanakan implementasi atau mengubah penanganan data yang tidak lazim.
Contoh interpolasi sepotong-sepotong menawarkan tugas proyek yang konkret. Anda dapat meminta model memeriksa titik sampel terurut dan penanganan kueri di luar titik ujungnya. Sertakan kode yang menyiapkan titik tersebut dan menggunakan hasilnya agar diskusi dapat membedakan kebijakan batas yang disengaja dari akibat perulangan yang tidak disengaja.
Tinjau perubahan yang disarankan terhadap titik simpul persis, kueri di antara simpul, dan nilai di luar rentang yang didukung. Periksa juga bagaimana urutan tidak valid diteruskan kepada pemanggil. Jalankan sendiri data uji numerik proyek dan bandingkan dengan perilaku yang disepakati; visualisasi yang tampak mulus saja tidak dapat menunjukkan apakah kebijakan batas atau penanganan masukan yang ditolak telah berubah.
Model AI tanpa batasan dapat digunakan jika tersedia melalui endpoint kompatibel OpenAI atau Anthropic yang didukung. Berikan kredensial sesuai kebutuhan dan verifikasi alat serta kapasitas konteks koneksi tersebut. Model dan penyedia tetap menentukan pembatasan respons; kontrak matematis aplikasi berasal dari persyaratan Anda dan kode yang Anda terima.
Pertanyaan berguna untuk pemeliharaan numerik
- Apa yang perlu ditentukan untuk kueri di luar rentang sampel?
Nyatakan kebijakan titik ujung yang dimaksud secara eksplisit, misalnya mempertahankan nilai titik ujung terdekat jika itu persyaratan Anda. Sertakan hasil yang diharapkan di kedua sisi rentang agar asisten tidak menggantinya dengan kebijakan ekstrapolasi lain.
- Mengapa menyertakan kode yang menyiapkan titik sampel?
Kode itu menentukan urutan, posisi duplikat, dan nilai numerik yang diterima sebelum interpolasi dimulai. Perubahan lokal bisa tampak benar tetapi bertentangan dengan asumsi tersebut. Minta model memeriksa jalur persiapan sebelum memindahkan validasi atau pengurutan.
- Bisakah saya menyetujui perubahan hanya dengan memeriksa grafik?
Grafik berguna untuk perilaku yang terlihat, tetapi perubahan batas yang halus dapat tampak serupa. Bandingkan data uji numerik eksplisit pada simpul, di antaranya, dan di luar rentang. Periksa pelaporan kesalahan maupun hasil yang berhasil.
- Bagaimana kumpulan data yang ditolak seharusnya sampai ke antarmuka?
Tentukan apakah pemanggil harus menampilkan kesalahan, menghilangkan hasil, atau mengikuti aturan lain yang sudah ada. Tinjau jalur itu bersama perhitungannya. Hindari diam-diam mengganti dengan nilai yang tampak masuk akal kecuali kontrak aplikasi Anda memang mengharuskannya.
KnotVista · Diperbarui 2026-10-25