如何用MATLAB求两条曲线的交点

clc,clear
K1=0.8125;
drp=-0.07;
drrp=-0.04;
g=0.0020;
x=0:pi/1000:pi;
H=1+K1.^2-2.*K1.*cos(x);
J=1-K1.^2;
a=1-sin(x).*H.^(-1/2);
b=(1-K1.*cos(x)-J.^(1/2).*sin(x)).*H.^(-1/2);
F=drrp.*a-drp.*b
G=sin(x).*g.*((1+K1.^2-2.*K1.*cos(x)).^(-1/2));
% F=drrp.*(1-sin(x).*H^(-1/2))-drp.*(1-K1.*cos(x)-J.^(1/2).*sinx)*H.^(-1/2);
plot(x,F,'R:*',x,G,'g-.v')

% figure;
% plot(x,G)
xlabel('角度数(\circ)')
将横坐标变为度数,如何得出两个交点的坐标值

可以参考下面的代码:

Description

example

S = solve(eqn,var) solves the equation eqn for the variablevar. If you do not specify var, the symvar function determines the variable to solve for. For example, solve(x + 1 == 2, x)solves the equation x + 1 = 2 for x.

扩展资料:

Matlab常用函数和命令

autumn 红黄调秋色图阵

axes 创建轴对象的低层指令

axis 控制轴刻度和风格的高层指令

capture (3版以前)捕获当前图形

cart2pol 直角坐标变为极或柱坐标

cart2sph 直角坐标变为球坐标

celldisp 显示元胞数组内容

cellplot 元胞数组内部结构图示

char 把数值、符号、内联类转换为字符对象

semilogx: x轴为对数刻度,y轴为线性刻度

semilogy: x轴为线性刻度,y轴为对数刻度

参考资料来源:百度百科-MATLAB

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-19

你的问题,应该分三步来求解。

第一步:求出两条曲线方程;

第二步:自定义所求的曲线方程,然后用fsolve()函数求出两条曲线的交点坐标。

第三步:绘出两条曲线的图形和交点坐标的位置。

实现过程:

第一步:你已完成。

第二、三步:

运行结果

如需要详细代码,可以通过私信给你。

本回答被提问者采纳
第2个回答  2019-05-06

1、我们利用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)。

第3个回答  2017-05-19
可以这样:
clc,clear
K1=0.8125;
drp=-0.07;
drrp=-0.04;
g=0.0020;
x=0:pi/1000:pi;
H=1+K1.^2-2.*K1.*cos(x);
J=1-K1.^2;
a=1-sin(x).*H.^(-1/2);
b=(1-K1.*cos(x)-J.^(1/2).*sin(x)).*H.^(-1/2);
F=drrp.*a-drp.*b;
G=sin(x).*g.*((1+K1.^2-2.*K1.*cos(x)).^(-1/2));
% F=drrp.*(1-sin(x).*H^(-1/2))-drp.*(1-K1.*cos(x)-J.^(1/2).*sinx)*H.^(-1/2);
%plot(x,F,'R:*',x,G,'g-.v')
plot(x,F,x,G),hold on
xlabel('角度数(\circ)')
syms x
H=1+K1^2-2*K1*cos(x);
J=1-K1^2;
a=1-sin(x)*H^(-1/2);
b=(1-K1*cos(x)-J^(1/2)*sin(x))*H^(-1/2);
F=drrp*a-drp*b;
G=sin(x)*g*((1+K1^2-2*K1*cos(x))^(-1/2));
x1=vpasolve(F-G);
x2=vpasolve(F-G,x,0.2);
f1=vpa(subs(F,x,x1));
f2=vpa(subs(F,x,x2));
plot(x1,f1,'o',x2,f2,'o')
hold off
第4个回答  2017-05-19
Description
example
S = solve(eqn,var) solves the equation eqn for the variablevar. If you do not specify var, the symvar function determines the variable to solve for. For example, solve(x + 1 == 2, x)solves the equation x + 1 = 2 for x.

相似回答