程序员的浪漫:教你如何用MATLAB向女生表白

我的机器学习教程「美团」算法工程师带你入门机器学习   已经开始更新了,欢迎大家订阅~

任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~

 

 

 

 

 

MATLAB可以实现很多数学中有趣的函数图形,利用函数+编程语言向女生发送一段代码,编译执行后,你的心意就会被收到啦,这样浪漫的感觉只有程序员才懂。

注:以下函数皆可用Python绘图库复现

平面心形图像

经过网上搜索,平面坐标系中,下面函数最像心形图像,而且函数形式简单,不需要分段。

x2+(y−(x2)1/3)2=9x2+(y−(x2)1/3)2=9

改变右面的数值可以变化心形图像的大小。

[plain]  view plain  copy
 
  1. > ezplot('x^2+(y-(x^2)^(1/3))^2=9')  

 

程序员的浪漫:教你如何用MATLAB向女生表白_第1张图片

 

 

还有一个函数:

                         

−x2y3+(x2+y2−1)3=0−x2y3+(x2+y2−1)3=0
[plain]  view plain  copy
 
  1. ezplot('-x^2*y^3+(x^2+y^2-1)^3=0',[-1.5,1.5])  

 

程序员的浪漫:教你如何用MATLAB向女生表白_第2张图片

 

另外一个函数:

 

17x2−16|x|y+17y2=20017x2−16|x|y+17y2=200

 

[plain]  view plain  copy
 
  1. ezplot('17*x.^2-16*abs(x).*y+17*y.^2=200'  

 

程序员的浪漫:教你如何用MATLAB向女生表白_第3张图片

另外一个分段函数:

   

f(x)g(x)=2x2−−√−x2−−−−−−−−−√=−2.142–√−|x|−−√−−−−−−−−−√f(x)=2x2−x2g(x)=−2.142−|x|


 

[plain]  view plain  copy
 
  1. x=linspace(-2,2,1000);  
  2. y1=sqrt(2*sqrt(x.^2)-x.^2);  
  3. y2=-2.14*sqrt(sqrt(2)-sqrt(abs(x)));  
  4. plot(x,y1,'b',x,y2,'b');  
  5. axis([-2.5,2.5,-3,1.5]);  
程序员的浪漫:教你如何用MATLAB向女生表白_第4张图片

另外一个:

xy=16(sint)3=13cost−5cos(2t)−2cos(3t)−cos(4t)x=16(sint)3y=13cost−5cos(2t)−2cos(3t)−cos(4t)

 

[plain]  view plain  copy
 
  1. t=linspace(-6,6,1000);  
  2. x=16*(sin(t)).^3;  
  3. y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);  
  4. plot(x,y);  
 
程序员的浪漫:教你如何用MATLAB向女生表白_第5张图片

 

 

 

立体心形图像

立体心形貌似只能由笛卡尔方程得到: 

(x2+9y2/4+z2−1)3−x2z3−9y2z3/80=0(x2+9y2/4+z2−1)3−x2z3−9y2z3/80=0

 

画图时用 isosurface 和 patch  函数:

图形1:

 

[plain]  view plain  copy
 
  1. f=@(x,y,z)(x.^2+ (9./4).*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9./80).*y.^2.*z.^3;  
  2. [x,y,z]=meshgrid(linspace(-3,3));  
  3. val=f(x,y,z);  
  4. [p,v]=isosurface(x,y,z,val,0);  
  5. patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');  
  6. view(3);grid on;axis equal;  

 

程序员的浪漫:教你如何用MATLAB向女生表白_第6张图片

 
图形2:

 

[plain]  view plain  copy
 
  1. f=@(x,y,z)(x.^2+ (9./4).*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9./80).*y.^2.*z.^3;  
  2. [x,y,z]=meshgrid(linspace(-1.5,1.5));  
  3. val=f(x,y,z);  
  4. isosurface(x,y,z,val,0);   
  5. axis equal;view(3);colormap([1 0.2 0.2])  
程序员的浪漫:教你如何用MATLAB向女生表白_第7张图片

你可能感兴趣的:(程序员的浪漫:教你如何用MATLAB向女生表白)