24小时热门版块排行榜    

查看: 3749  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

望月任

新虫 (小有名气)

[求助] 请问下如何用matlab 求两个曲线(其中一个是拟合得到的曲线))的交点,例子如下已有2人参与

x=800:100:2500;
y=[445 462 466 486 494 494  493  492 491 489  477 461  451  437  424 412 400 386];
x和y拟合出一条曲线与曲线y=2*x.^2/10^4的交点@月只蓝@beefly
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

望月任

新虫 (小有名气)

送红花一朵
引用回帖:
7楼: Originally posted by 月只蓝 at 2016-05-31 12:26:28
3楼 dingd 的应助回答,给出了具体方法和步骤。...

老师您好,我上次在您的指点下用matlab编了下面这个程序,求交点时又发现了一点问题。当我采用5次多项式拟合p1=polyfit(xx,yy,5)时,得到的交点与图上交点很符合,而我采用4次或6次多项式时,得到的交点与实际图的交点却有很大出入,老师您能帮忙看下哪里有问题吗?怎么改进才好呢?打扰老师了。

xx=800:100:2500;
yy=[445.7823 462.6885 466.5998 486.2869  494.6164  494.1792  493.4424  492.4400 491.1972  489.7337  477.7725  461.8259  451.7348  437.8226  424.8029 412.5424 400.9299 386.1670];
c=[2.81        2.639 2.422 2.195 1.94 1.696 1.466 1.2477 1.1386 1.0284        0.8485 0.7823 0.656 0.5538 ];
p1=polyfit(xx,yy,5);
y_val=polyval(p1,xx);
plot(xx,yy,'k*',xx,y_val,'r-')
syms x y
h1=[];
h2=[];
for i=1:14
p2=c(i)*xx.^2/(10^4);
[Sx,Sy]=solve(p1(1)*x^5+p1(2)*x^4+p1(3)*x^3+p1(4)*x^2+p1(5)*x+p1(6)==y,c(i)*x^2/(10^4)==y);
hold on
plot(xx,p2)
t1=eval(Sx)
t2=eval(Sy)
h1=[h1 t1(1, :]
h2=[h2 t2(1, :]
end
12楼2016-06-02 09:46:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

望月任

新虫 (小有名气)

2楼2016-05-29 07:49:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
望月任(月只蓝代发): 金币+10, 感谢应助! 2016-05-30 21:03:33
望月任: 金币+80, ★★★★★最佳答案 2016-06-02 09:43:10
1:先把
x=800:100:2500;
y=[445 462 466 486 494 494  493  492 491 489  477 461  451  437  424 412 400 386];
拟合成一条曲线:y = p1+p2*x+p3*x^2+p4*x^3;

y = 118.438596460576+0.636096491290097*x+(-0.000325683694569401)*x^2+4.55366357146146e-8*x^3
见图1

2:解方程组:
y = 118.43859646916+0.636096491274019*x+(-0.000325683694559969)*x^2+4.55366357128571e-8*x^3;
         y=2*x^2/10^4;
得交点:
y: 5.36137161267706
x: -163.728000237263

见图2
请问下如何用matlab 求两个曲线(其中一个是拟合得到的曲线))的交点,例子如下
图1


请问下如何用matlab 求两个曲线(其中一个是拟合得到的曲线))的交点,例子如下-1
图2

3楼2016-05-30 16:29:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
望月任(月只蓝代发): 金币+10, 感谢应助! 2016-05-30 21:03:59
还有一个交点:
x: 1566.41535773631
y: 490.731414608278
请问下如何用matlab 求两个曲线(其中一个是拟合得到的曲线))的交点,例子如下-2
c3.jpg

4楼2016-05-30 16:32:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见