MATLAB Answers

Finding tangent plane with the max range value and z value being equal

5 ビュー (過去 30 日間)
Rahal Rodrigo
Rahal Rodrigo 2021 年 4 月 16 日 15:17
編集済み: Andrew Newell 2021 年 4 月 16 日 22:00
Hi there. I'm plotting a tangent plane to a particular surface. However, the range for both x and y if +- sqrt(2), which is +-1.41. The expected value of z for the tangent plane is sqrt(2) as well. However, when i run the command, MATLAB produces an error for that particulat range (produces sucessful output on ranges such as +-2). Would be grateful if someone provided insight what I could do to solve this issue. The code is shown below. Any advice would be greatly apreciated.

採用された回答

Andrew Newell
Andrew Newell 2021 年 4 月 16 日 21:57
編集済み: Andrew Newell 2021 年 4 月 16 日 22:00
Notice that j is empty, then try this:
X = -1.41:0.01:1.41;
[~,idx] = min(abs(X-1));
disp(X(idx)-1)
This being floating point, you're not getting exact increments of . You could scale everything so x, y are and then find and . Or you could do it like this:
z = @(x,y) sqrt(4-x.^2-y.^2);
X = -1.41:0.01:1.41;
[x,y] = meshgrid(X);
[fx,fy] = gradient(z(x,y),0.01);
[~,j] = min(abs(X-1));
fx0 = fx(j,j);
fy0 = fy(j,j);
z1 = @(x,y) z(1,1) + fx0*(x-1) + fy0*(y-1);
As a side note, you don't need . You can use j directly as logical indexing.

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by