nasi168 发表于 2009-4-6 22:24

请问曲线定积分

请问一下这条曲线(表达式并不清楚)要求定积分以每0.3726为步长一共求12次 应该怎么做?谢谢



[ 本帖最后由 ChaChing 于 2009-4-6 22:44 编辑 ]

sogooda 发表于 2009-4-7 19:58

doc trapz

ChaChing 发表于 2009-4-7 20:45

原帖由 nasi168 于 2009-4-6 22:24 发表 http://www.chinavib.com/forum/images/common/back.gif
...这条曲线(表达式并不清楚)...
什麽意思!? 没有表达式怎麽求面积?
除非有相对应的离散点! 请楼主说清楚些

nasi168 发表于 2009-4-7 20:58

对应的离散点是知道的 知道12个点每0.3726个步长 就是一个点 我想把这12个步长所对应的区域面积求出来 再以这个面积为纵坐标 原先的步长为横坐标 再画出他们的曲线关系图 chaching朋友请回答~谢谢

ChaChing 发表于 2009-4-7 22:31

回复 地板 nasi168 的帖子

因0.3726*12=4.4712并根据LZ的图, 猜测应有13点(Xi,Yi)!?
有很多方法, 可近似求解
1.使用for循环算梯形面积即可! 自个儿先试试!
2.curve fit离散点, 求出表达式, 再使用trapz
3.curve fit离散点, 求出更多点, 再同方法1
...

nasi168 发表于 2009-4-8 22:26

ChaChing你帮我再看看

我是那个曲线求积分的楼主
现在我已经知道了横坐标x和纵坐标y的矩阵
见图


帮我看下我的程序
for i=1:12
a=x(i,:);
b=y(i,:);   这两个矩阵在旁边图上
t=trapz(a,b)
为什么只能得到第12个面积的值?
我想得到12个面积的值 并把它形成一个数组 应该怎么做?

ChaChing 发表于 2009-4-8 23:32

勿指名回覆!
x=[...]; y=[...];给齐方便别人试试!

beyondhxf 发表于 2009-4-9 08:42

回复 6楼 nasi168 的帖子

for是不是少了个end?


方法2:可以对12个点进行差值,然后再对差值后的结果进行积分,可提高精度。

[ 本帖最后由 beyondhxf 于 2009-4-9 08:43 编辑 ]

ChaChing 发表于 2009-4-9 08:45

clc; clear
x=0:0.3726:4.5; nx=length(x);
y=[9.241,9.2315,9.2031,9.1558,9.09,9.006,8.9044, ...
   8.7855,8.6502,8.4991,8.333,8.1528,7.9596]*1e8;
plot(x,y,'o-'); grid on;
AreaK=zeros(1,nx-1);
for ii=2:nx, AreaK(ii)=trapz(x(1:ii),y(1:ii)); end
figure; plot(x,AreaK,'o-'); grid on;

nasi168 发表于 2009-4-9 10:32

真心感谢各位朋友的帮助 !
页: [1]
查看完整版本: 请问曲线定积分