用matlab軟體程式設計 求出球面上x 2 y 2 z 2 1上與點 3,1, 1 距離最近和最

2022-12-05 06:01:23 字數 1447 閱讀 3946

1樓:暢桂花江琬

functionf=

myfun(x)

f=sqrt((x(1)-3)^2+(x(2)-1)^2+(x(3)+1)^2);

function

[c,ceq]=conf(x)

c=0;

ceq=1-x(1)^2-x(2)^2-x(3)^2;

這兩個函式分別定義在myfun.m和conf.m中命令列輸入

[x,fval]=fmincon(@myfun,[001],,,,,,,@conf)求得x

=0.9045

0.3015

-0.3015

fval

=2.3166

所以最近點座標[0.9045

0.3015

-0.3015],距離是2.3166

最遠點的話f=-sqrt((x(1)-3)^2+(x(2)-1)^2+(x(3)+1)^2);

再[x,fval]=fmincon(@myfun,[001],,,,,,,@conf)求得x

=-0.9045

-0.3015

0.3015

fval

=-4.3166

所以最遠點座標[

-0.9045

-0.3015

0.3015],距離是4.3166

滿意請採納,不懂可追問,謝謝!

2樓:閒庭信步

過球心o(0,0,0)及點p(3,1,-1)的直線與球面的兩個交點即為所求。

可用以下**求解

syms x y z t

q1='x-3*t'

q2='y-t'

q3='z+t'

q4='x^2+y^2+z^2-1'

[x,y,z,t]=solve(q1,q2,q3,q4)

x =1/11*11^(1/2)

-1/11*11^(1/2)

y =3/11*11^(1/2)

-3/11*11^(1/2)

z =1/11*11^(1/2)

-1/11*11^(1/2)

dmin=sqrt((3-x(1))^2+(1-y(1))^2+(-1-z(1))^2)

dmin =

((3-1/11*11^(1/2))^2+(1-3/11*11^(1/2))^2+(-1-1/11*11^(1/2))^2)^(1/2)

dmax=sqrt((3-x(2))^2+(1-y(2))^2+(-1-z(2))^2)

dmax =

((3+1/11*11^(1/2))^2+(1+3/11*11^(1/2))^2+(-1+1/11*11^(1/2))^2)^(1/2)

dmax= eval(dmax)

dmax =

3.8749

dmin= eval(dmin)

dmin =

2.9975

有45矩陣用matlab程式設計求出其最大值及其所在

matlab求最大值直接呼叫求最值的函式 max 函式就好了。例如矩陣為 a 那麼求最值即為 max a max max a m,n find max a a 程式中出錯的原因可能是因為第一行結束的分號是中文分號,換成非英文分號就好。matlab 中的 max 函式是求最大值的函式。1 如果 a 是...

用matlab畫出上半球面 橢球面 雙葉雙曲面 單葉雙曲面

半球面 fia,theta meshgrid linspace 0,pi,100 pi x sin theta cos fia y sin theta sin fia z cos theta surf x,y,z shading interp 橢球面 theta 0 0.1 2 pi phi the...

如何編寫軟體,軟體是用程式設計軟體編的,程式設計軟體又怎麼來的?

你學c語言吧!那麼究竟怎樣學習c語言呢?1 工欲善其事,必先利其器 這裡介紹幾個學習c語言必備的東東 一個開發環境,例如turbo c 2.0,這個曾經佔據了dos時代開發程式的大半個江山。但是現在windows時代,用turbo c有感覺不方面,編輯程式起來很吃力,並且拖放,更沒有函式變數自動感應...