так ведь For и If должны быть для выполнения этой задачи "снаружи" как это совместить)))?
Какие For и If?
Функция сплайн
1) в цикле ищет отрезок, куда попал аргумент (точка, в которой сплайн вычисляется)
2) находит значение линейной функции на найденном отрезке
Дальше можно использовать функцию сплайн. Например обращаться к ней много раз в цикле, чтобы вычислить значение сплайна и занести в таблицу.
Пишите функцию сплайн, чтобы можно было пользоваться ей как черным ящиком.
ну так ведь вот она ? и для неё нужен цикл, который не хочет работать)))
Код:
For[j = 1, j <= n, j++,
If[(x <= z[[j + 1]]) && (x >= z[[j]]),
s3[x_] :=
f[z[[j]]]*(x - z[[j + 1]])/(z[[j]] - z[[j + 1]]) +
f[z[[j + 1]]]*(x - z[[j]])/(z[[j + 1]] - z[[j]])]]
Ведь для того, чтобы она была чёрным ящиком, она должна правильно подставлять ухлы сетки в формулу. а как это сделать можно иначе ?
-- 02.11.2012, 21:08 --Возврат где?
Код:
sger3[x0_] := Module[{x = x0, j, z, n},
For[j = 1, j <= n, j++,
If[(x <= z[[j + 1]]) && (x >= z[[j]]),
s3 =
f[z[[j]]]*(x - z[[j + 1]])/(z[[j]] - z[[j + 1]]) +
f[z[[j + 1]]]*(x - z[[j]])/(z[[j + 1]] - z[[j]])]]
Return[s3]]
sger3[2]
Null Return[s3]