РЕДАКТИРОВАТЬ: формула немного скорректирована (в скобках), чтобы отразить успех в комментарии.
Когда вы говорите, что хотите таблицу, я думаю, это будет таблица R
на DR
(так как у вас естьна векторы разной длины).Для этого вам нужно использовать R
как вектор-столбец (R'
ниже) и умножить на *
(не .*
).Когда R
не появляется в выражении, умножьте на ones(size(R))
(или используйте repmat
), чтобы получить DR в нужной форме.Чтобы выровнять DR
по элементу, вам нужно DR.^2
.Кажется, для acos
есть неуместная скобка, и вы обязательно поделите ее на r
перед тем, как взять acos
.Должно быть деление на что-то вроде r
в asin
(не r^2
, потому что вы взяли sqrt
).Наконец, последнее деление на r
является избыточным, как написано, так как вы умножаете на r
на том же уровне, что и раньше.В любом случае, если я сделаю следующее:
h= r*(1-cos(asin((sqrt(2*R'*DR+ones(size(R))'*DR.^2)/r)+sin(acos((r-k)/r)))))-k
я получу таблицу R
на DR
.Результаты для малых R,DR
реальны;более высокие R,DR
являются сложными из-за аргумента первого asin
, являющегося> 1.Первая запись в таблице - 4,56, как вам требуется.