在matlab中寻找曲线上离原点距离最近的点的坐标的思考
2017-08-05 22:06
429 查看
syms y x=linspace(-2,2,200) n=length(x) g=[]; for i=1:n a=x(i); t=vpa(solve(y/(1+a^2+y^2)-sin(a+cos(y)),y),3); g=[g t]; end
对于这个代码主要是想算出对应x的y,因为直接用get函数得到的x和y是按照顺序先后排列而不是一一对应。下面那个代码得出的结果是错误的。
syms x y f=y/(x^2+y^2+1)-sin(x+cos(y)) ezplot(f,[-2 2],[-2 2]) h=get(gca,'Children'); x=get(h,'xdata'); y=get(h,'ydata'); c=x.^2+y^2;%解离原点距离 *这边如果y不转置根本运行不了* n=find(c==min(c));%找最短 x(n)%结果 y(n)
但是可以用第二个 代码的find去做。
求min(x^2+y^2)
方程在实数区域没有根,可能在虚数区域是有根的
F = @(y)y/(1+a^2+y^2)-sin(a+cos(y)); syms yr yi H = F(yr+yi*1i); HH = matlabFunction([real(H),imag(H)],'vars',{[yr,yi]}); fsolve(HH,[-.2,1.2])
这个就将根的形式写成复数的形式。
fsolve函数主要通过迭代法求根的,如果你给的是复数形式,那么就有可能得到复数形式的根
clear all;clc syms x y c=[]; for y=linspace(-2,2,200) c=[c solve(y/(1+x^2+y^2)-sin(x+cos(y)),x)]; end y=linspace(-2,2,200);x=c; d=[x' y' (y.^2+x.^2)']; d=double(d); [i j]=find(d==min(d(:,3))); d(i,:) gg=d(i,3); cc=sqrt(gg); h=ezplot('y/(1+x^2+y^2)-sin(x+cos(y))',1000); hold on; rectangle('Position',[-cc,-cc,2*cc,2*cc],'Curvature',[1,1]),axis equal hold on; aa=ones(size(x))*0; plot(x,aa); hold on; bb=ones(size(y))*0; plot(bb,y);
相关文章推荐
- MATLAB 给定一组二维坐标,拟合曲线并且取曲线上任意点的坐标方法,或者均分定义域,得到对应值方法
- 【任务3】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 怎么根据坐标原点(经纬度)与距离值获取一个方形区域
- 怎么用按键精灵快速开发计算距离自己最近的怪物/包裹/金矿坐标的脚本
- 【MATLAB】画平行于坐标轴的曲线
- [算法] 已知在平面坐标系内有N个点,求离开给定坐标距离最近的10个点
- 《C++第六周实验报告3-1》---设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- Matlab绘制自然原点坐标的坐标轴
- 各地图gps坐标系统比较与转换以及经纬度距离计算MATLAB脚本
- 用matlab将三条曲线放在一张双坐标的图上
- 寻找距离某数最近的素数(C语言)
- [算法] 已知在平面坐标系内有N个点,求离开给定坐标距离最近的10个点
- 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。
- 第六周任务三设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- C++第六周任务三设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 利用MATLAB计算三维坐标序列距离误差程序
- 2.11寻找最近的点对 (给定一系列的点,求出距离最短的点对)
- 求空间内两条直线的最近距离以及最近点的坐标(C++)
- 平面中有若干个点,寻找距离最近的两个点,输出其编号
- matlab如何控制坐标轴显示内容,而不改变曲线形状