登录论坛

查看完整版本 : [求助]请大虾帮忙解决个曲线拟合问题!


xxhs
2008-09-26, 23:39
本人做试验得到一组数据想用MATLAB处理下,刚上手很多不明白恳请各位大虾帮忙.
有8个坐标点 要求其包围的面积 如和求?
(1,1)(2,3)(3,6)(4,9)(5,7)(6,4)(7,3)(8,1)
想尽量准确的求出与X轴包围的面积有什么好方法不?
能上传个例子或是就对这个例子写个matlab程序吗?谢谢!

xxhs
2008-09-26, 23:44
大伙帮忙顶下呀

xxhs
2008-09-27, 12:08
大虾们 帮帮忙呀 用你的智慧帮助一个渴望知识的菜鸟!

meteora1005
2008-09-27, 22:32
先用三次样条插值模拟出闭合曲线,再用matlab中计算闭合图形面积函数计算,给你程序:
clc;
clear;

x=[1 2 3 4 5 6 7 8];
y=[1 3 6 9 7 4 3 1];
x=[x,x(1)];
y=[y,y(1)];
plot(x,y,'r.','markersize',9);
hold on;

n=length(x);
t=1:n;
ti=linspace(1,n,100);
xi=spline(t,x,ti);
yi=spline(t,y,ti);
plot(xi,yi,'b');
grid on;
area=polyarea(xi,yi);
disp(area);
结果是29.4119
我以前做过类似问题,呵呵

xxhs
2008-09-28, 17:53
不对呀 是要计算X轴上半部分和曲线包围的面积啊,不能是这样的闭合曲线吧

xxhs
2008-09-28, 17:54
先用三次样条插值模拟出闭合曲线,再用matlab中计算闭合图形面积函数计算,给你程序:
clc;
clear;

x=[1 2 3 4 5 6 7 8];
y=[1 3 6 9 7 4 3 1];
x=[x,x(1)];
y=[y,y(1)];
plot(x,y,'r.','mark...
不对呀 是要计算X轴上半部分和曲线包围的面积啊,不能是这样的闭合曲线吧

meteora1005
2008-09-28, 23:10
哦,我看走眼了,原来是这样啊,我以为你要计算闭合曲线的面积,那就更简单了,用数值积分计算好了
程序稍稍改一下:
clc;
clear;

x=[1 2 3 4 5 6 7 8];
y=[1 3 6 9 7 4 3 1];
plot(x,y,'r.','markersize',9);
hold on;

n=length(x);
t=1:n;
ti=linspace(1,n,100);
xi=spline(t,x,ti);
yi=spline(t,y,ti);
fill(xi,yi,'b');
grid on;

area=trapz(xi,yi);
disp(area);

xxhs
2008-09-29, 12:48
问题解决啦,谢谢哈!

Shine_1206
2010-01-26, 21:07
各位大侠:
我在实验中得出一组数据,
x=【0.0,31.6,63.2,94.7,126.3,157.9,189.5,221.1,252.6,284.2,315.8,347.4,378.9,410.5,442.1,473.7,505.3,536.8,568.4,600.0,600.0];
y=[0.0,4.12,4.70,3.28,-0.73,-4.32,-5.76,-5.33,-5.06,-4.95,-3.62,-2.40,-0.76,-0.88,-0.81,-0.66,0.05,1.17,2.16,3.10,3.71,0.0];
我现在想求出根据这些点画出的曲线与X轴的交点,该怎么做呢?
急啊~~ 谢谢各位大侠了!在线等~