MATLAB中怎么求两条曲线的交点并标注
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中怎么求两条曲线的交点并标注相关的知识,希望对你有一定的参考价值。
1、利用plot()绘制两条颜色不同、线型不同的曲线,y1和y2有几个交点。x=0:pi/100:4*pi;y1=sin(x);y2=cos(x);plot(x,y1,'g--',x,y2,'b')
2、取y1,y2相等点的坐标,并将两条曲线相等的点表示为y3。x1=x(k);y3=sin(x1);
3、将y3与前面的y1,y2合并得到两条曲线相交的点。plot(x,y1,'g--',x,y2,'b',x1,y3,'rp')
参考技术A1、我们利用MATLAB求下图双曲线方程x^2/4^2-y^2/3^2=1和直线方程y=1/2*x+1的交点。
2、启动MATLAB,新建脚本(Ctrl+N),在脚本编辑区输入如图代码。
3、保存和运行上述代码,在命令行窗口返回如下结果,也就是说,双曲线方程x^2/4^2-y^2/3^2=1和直线方程y=1/2*x+1有两个交点,分别为(7.4788, 4.7394)和(-4.2788, -1.1394)。
4、在第二步脚本的基础上,绘制出双曲线方程、直线方程的图像,并标出它们的两个交点。只需在脚本编辑区接着输入如下代码。
5、保存和运行上述改进后的脚本,得到双曲线方程x^2/4^2-y^2/3^2=1和直线方程y=1/2*x+1的图像,并且标出了它们的两个交点(7.4788, 4.7394)和(-4.2788, -1.1394)。
参考技术B求解思路:
第一步:建立自定义函数文件,tx_fun.m。文件包含两条曲线函数方程。
第二步:用fsolve()函数,求解两条曲线的交点。
第三步:用plot()函数,画出两条曲线
第四步:用text()函数,在两条曲线的交点附近标注交点坐标值
参考技术C解题方法
建立自定义函数文件,tx_fun.m。文件包含两条曲线函数方程。
用fsolve()函数,求解两条曲线的交点。
用plot()函数,画出两条曲线。
用text()函数,在两条曲线的交点附近标注交点坐标值。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
它可以用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。我曾经用它做运筹学方面的多维线性规划,只需编好程序,把相关数据输进去,结果就出来了,效率超高的。
1. 对于两条曲线都是显示函数的,可以直接求出交点,然后用matlab绘点标注即可;
2. 如果两条曲线至少有一条是隐函数描述的,那么可以用近似求根,比如fsolve,fzero等函数求交点。
如果两条中至少有一条是离散点连接起来的曲线,而其解析表达式未知。那么可以用下面的方法求,而且这种方法对于上面1. 2.都有效。
原理很简单,离散点依次相连形成的曲线,其交点都在两条小直线段上,利用计算几何学中的判断“两线段相交”的方法(快速排斥和跨立试验),然后经过两层循环依次求出每个线段跟另一条曲线的所有线段的交点。
具体实例在 http://www.ilovematlab.cn/thread-167242-1-1.html
上述链接中的4楼给出了函数文件来解决这类问题。
交轨法
前言
交轨法是解析几何中求动点轨迹方程的常用方法之一。首先选择适当的参数表示两动曲线的方程,将两动曲线方程中的参数消去,然后得到不含参数的方程,此方程即为两动曲线交点的轨迹方程,这种求轨迹方程的方法叫做交轨法[交点轨迹法]。
典例剖析
法1:参数方程法,首先联立两个方程,得到(left{egin{array}{l}{x-my-1=0①}\{mx+y-1=0②}end{array} ight.)
给②式乘以(m),消(y)得到,(x=cfrac{m+1}{m^2+1}),代入②式得到(y=cfrac{1-m}{m^2+1})
即交点轨迹的参数方程为
[left{egin{array}{l}{x=cfrac{m+1}{m^2+1}}\{y=cfrac{1-m}{m^2+1}}end{array} ight.quad (m为参数)]
或者说我们就可以用参数方法来回答这个问题。
不过我们还是继续完成接下来的任务,重点和难点是消参。
(left{egin{array}{l}{x=cfrac{m+1}{m^2+1}①}\{y=cfrac{1-m}{m^2+1}②}end{array} ight.quad (m为参数)),如何消参,
给①^2+②^2,得到(x^2+y^2=cfrac{(m+1)^2}{(m^2+1)^2}+cfrac{(1-m)^2}{(m^2+1)^2}=cfrac{2}{m^2+1}),
又(x+y=cfrac{2}{m^2+1}),故(x^2+y^2-x-y=0)。
又当(x=0)且(y=0)时,(m)不存在,
故所求的轨迹方程为(x^2+y^2-x-y=0(x eq0且y eq 0))。
法2:交轨法,将两个方程分别变形为(my=x-1)和(mx=1-y),
当(m=0)时,两个方程不能相除,此时得到两个直线的交点为((1,1));
当(m eq 0)时,两式相除得到(cfrac{my}{mx}=cfrac{x-1}{1-y}),即(cfrac{y}{x}=cfrac{x-1}{1-y}),
变形为(y(1-y)=x^2-x),整理为(x^2+y^2-x-y=0),即((x-frac{1}{2})^2+(y-frac{1}{2})^2=cfrac{1}{2})
再分别验证点((1,1))和点((0,1))和点((1,0))都在上述曲线上,但是点((0,0))不应该在轨迹曲线上,
[为什么验证这四个点,原因是由(cfrac{y}{x}=cfrac{x-1}{1-y}),两个横行即分子分母都为零,得到点((0,1))和((1,0)),两个竖行都为零,得到点点((0,0))和((1,1)),]
故所求的轨迹方程为(x^2+y^2-x-y=0(x eq0且y eq 0))。
以上是关于MATLAB中怎么求两条曲线的交点并标注的主要内容,如果未能解决你的问题,请参考以下文章