一个使用MATLAB手动求二维曲线交点的例子

本文介绍了一个使用MATLAB进行两条曲线拟合的例子,并通过调节步长和精度来寻找两曲线的交点。虽然这种方法并非精确求解,但有助于理解数值逼近的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该例子是通过调节步长和精度进行逼近,不是精确解,也不是很完善,如果精度选择太大,而步进值选择太小可能一个点坐标被输出两次,仅作为一个练习用。

Technorati 标签: MATLAB

%% Settings
prec = 0.01;   %精度
step = 0.02;
start = -100;
stop = 100;
%% plot
x=start:step:stop;
L1=3*x+5;
L2 = -0.1*x.^2+50;
plot(x,L1,'red',x,L2,'blue');
legend({'L1','L2'},'location','NorthWest');
title({'Joint of two curves', 'L1=1-(1/x)sinx','L2=-0.1x^2+50'});
xlabel('x');
ylabel('y');
%% find joint
jCount = 0;
joint = [-inf inf];
for i=1:length(x)
    if(abs(L1(i)-L2(i)) < prec)
        jCount = jCount + 1;
        joint=[x(i) L1(i)]
        display('The joint point is:');
        display(strcat('(',num2str(x(i)),',',num2str(L1(i)),')'));
        lh = line([min(x) x(i)],[L1(i) L1(i)]); %纵坐标
        set(lh,{'DisplayName','color','LineStyle'},{num2str(joint(1)),'green','--'});
        lh = line([x(i) x(i)],[min(min(L1),min(L2)) L1(i)]); %横坐标
        set(lh,'color','green');
        set(lh,'LineStyle','--');
        text(joint(1)+5,joint(2)+5,strcat('P_',num2str(jCount),'(',num2str(joint(1)),',',num2str(joint(2)),')'));
    end
end

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值