查看: 486|回复: 7|关注: 0

[已解决] matlab计算曲线积分并画出积分曲线

[复制链接]

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
根据原始数据坐标,已经通过三次样条插值生成曲线,并利用曲率函数求解出了曲线曲率?请问如何计算该曲率函数的积分,并绘制积分曲线图像呢?谢谢大佬。以下是插值曲线和曲率函数代码插值曲线代码

clear
clc
%初始坐标
x0=[329,330,328,326,325,323,322,321,319,318,316,315,313,312,311,309,308,306,305,304,302,301,299,298,296,295,294,292,291,289,288,287,285,284,282,281,280,278,277,275,274,272,271,270,268,267,265]; %X轴坐标
y0=[202.5,203,202,202,203,205,206,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,205.5,202.5,200,199,197,197,197,196,195,193,192,190,190,189,188,186,185,183,181,179,178,176,169,170];  %Y轴坐标

pp=csape(x0,y0,'second',[0,0]); %边界条件,二阶导数为0
x = linspace(265,330,200);%对X定义域N等分
y = ppval(pp,x);%插值曲线上x点对应值

h=figure;
plot(x0,y0,'*',x,y);
legend('left-1')
title('三次样条插值结果')
h.Name = '三次样条插值结果';
h.NumberTitle = 'off';


曲率代码
clear
clc
syms x y K K1 K2 dd dd1 dd2
x=[329,330,328,326,325,323,322,321,319,318,316,315,313,312,311,309,308,306,305,304,302,301,299,298,296,295,294,292,291,289,288,287,285,284,282,281,280,278,277,275,274,272,271,270,268,267,265]; %X轴坐标
y=[202.5,203,202,202,203,205,206,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,205.5,202.5,200,199,197,197,197,196,195,193,192,190,190,189,188,186,185,183,181,179,178,176,169,170];  %Y轴坐标
dd=csape(x,y);%三次样条自然边界约束
figure;
h=265:0.1:330;%起止点及其步长设置
dd1=fnval(fnder(dd,1),h); %一阶导数计算
plot(h,dd1);
title('三次样条插值一阶导数(left-1)')
xlabel('x','fontsize',12)
ylabel('y','fontsize',12)
figure;
dd2=fnval(fnder(dd,2),h); %二阶导数计算
plot(h,dd2);
title('三次样条插值二阶导数(left-1)')
xlabel('x','fontsize',12)
ylabel('y','fontsize',12)
% K1=(dd2)./sqrt((1+dd1.^2).^3);%无符号曲率
% plot(h,K1);% plot(h,abs(dd2)./sqrt((1+dd1.^2).^3));
K2=abs(dd2)./sqrt((1+dd1.^2).^3);%曲率绝对值
figure;
plot(h,K2);% plot(h,abs(dd2)./sqrt((1+dd1.^2).^3));
title('三次样条插值曲率(left-1)')
xlabel('x','fontsize',12)
ylabel('y','fontsize',12)

论坛优秀回答者

0

主题

2261

帖子

350

最佳答案
  • 关注者: 63
发表于 2020-1-3 16:03:00 | 显示全部楼层
已知表达式的话,直接integral变上限积分;离散数值的话,自己利用积分原理写个小代码积分,当然也可以先将离散点插值得到表达式,在积分
1.仔细阅读论坛各版块置顶贴;2.该论坛旨在交流解惑,请粘贴出错代码;3.doc+'函数名'查看函数说明 ...

MATLAB 基础讨论
版块优秀回答者

入门

228 麦片

财富积分


50500


20

主题

419

帖子

32

最佳答案
  • 关注者: 2
发表于 2020-1-5 13:32:34 | 显示全部楼层
你三次差值,对x实行均分,比如xx=1:0.1:1000;%xx根据需要,然后yy=spline(x,y,xx),就知道yy坐标,然后对yy坐标进行求和。

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 2020-1-5 21:11:10 | 显示全部楼层
onlye_caisA 发表于 2020-1-5 13:32
你三次差值,对x实行均分,比如xx=1:0.1:1000;%xx根据需要,然后yy=spline(x,y,xx),就知道yy坐标,然后对 ...

首先,很感谢您的回复。本人已经解决了三次样条插值的问题,并且根据插值曲线计算出了曲线曲率。现在像求解曲率曲线的积分问题

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 2020-1-6 08:43:11 | 显示全部楼层
WarnerChang 发表于 2020-1-3 16:03
已知表达式的话,直接integral变上限积分;离散数值的话,自己利用积分原理写个小代码积分,当然也可以先将 ...

博主您好,首先很感谢您的回复。正如本人问题所描述一样,已知函数表达式(即曲率代码中的K2),但是表达式比较复杂,是由各阶导数整合成的公式,您方便写段小程序具体讲述一下嘛,谢谢您

论坛优秀回答者

0

主题

2261

帖子

350

最佳答案
  • 关注者: 63
发表于 2020-1-6 11:33:38 | 显示全部楼层 |此回复为最佳答案
greatLiang 发表于 2020-1-6 08:43
博主您好,首先很感谢您的回复。正如本人问题所描述一样,已知函数表达式(即曲率代码中的K2),但是表达 ...

创建一个函数文件如下:
function JK=Int(h)

global K2

dh=0.1;%积分步长
m=ceil((h-265)/dh)+1;

if m==1
    JK=0;
elseif m==2
    JK=((K2(1)+K2(m))/2)*dh;
else
    JK=(sum(K2(2:m-1))+(K2(1)+K2(m))/2)*dh;
end

end
建立m文件如下:
Final=arrayfun(@(x)Int(x),h);

运行m文件,Final就是积分值
1.仔细阅读论坛各版块置顶贴;2.该论坛旨在交流解惑,请粘贴出错代码;3.doc+'函数名'查看函数说明 ...

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 2020-1-6 15:32:25 | 显示全部楼层
WarnerChang 发表于 2020-1-6 11:33
创建一个函数文件如下:
function JK=Int(h)

十分感谢,谢谢大佬

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 2020-1-6 21:01:41 | 显示全部楼层
得到的曲率坐标为651个坐标信息,具体数据如下:
xx = 265:0.1:330;
yy = [0.0103    0.0146    0.0215    0.0333    0.0548    0.0983    0.1982    0.4750    1.4641    5.5653    7.9839    2.4390...
    0.7555    0.3073    0.1521    0.0858    0.0531    0.0351    0.0243    0.0175    0.0129    0.0080    0.0045    0.0017...
    0.0010    0.0037    0.0070    0.0115    0.0182    0.0292    0.0496    0.0711    0.1048    0.1588    0.2483    0.3998...
    0.6578    1.0798    1.6799    2.2752    2.4683    2.1129    1.5096    0.9458    0.4959    0.1266    0.2205    0.6059...
    1.0852    1.6745    2.2483    1.9999    1.5866    1.1785    0.8529    0.6165    0.4508    0.3351    0.2538    0.1956...
    0.1532    0.1002    0.0620    0.0319    0.0058    0.0197    0.0475    0.0813    0.1265    0.1918    0.2932    0.3388...
    0.3790    0.4069    0.4150    0.3971    0.3505    0.2762    0.1793    0.0674    0.0501    0.1634    0.2632    0.3412...
    0.3921    0.4141    0.4095    0.3841    0.3452    0.3000    0.2541    0.1543    0.0912    0.0465    0.0102    0.0243...
    0.0631    0.1137    0.1887    0.3125    0.5379    0.7122    0.9028    1.0715    1.1665    1.1483    1.0146    0.7967...
    0.5342    0.2552    0.0276    0.3101    0.5873    0.8438    1.0485    1.1614    1.1561    1.0428    0.8658    0.6762...
    0.5076    0.2902    0.1718    0.0997    0.0501    0.0105    0.0272    0.0700    0.1275    0.2158    0.3683    0.4734...
    0.5955    0.7242    0.8399    0.9168    0.9321    0.8761    0.7561    0.5898    0.3964    0.1900    0.0210    0.2315...
    0.4362    0.6256    0.7843    0.8928    0.9346    0.9058    0.8192    0.4995    0.2930    0.1476    0.0307    0.0806...
    0.2069    0.3745    0.6231    1.0168    1.6367    1.7012    1.5115    1.1583    0.7563    0.3647    0.0099    0.3851...
    0.7778    1.1793    1.5269    1.2998    1.0552    0.8335    0.6500    0.5047    0.3920    0.3047    0.2367    0.1829...
    0.1394    0.1035    0.0728    0.0456    0.0206    0.0034    0.0276    0.0531    0.0811    0.1131    0.1510    0.1430...
    0.1315    0.1166    0.0986    0.0779    0.0549    0.0303    0.0048    0.0209    0.0459    0.0412    0.0367    0.0323...
    0.0282    0.0241    0.0202    0.0164    0.0126    0.0089    0.0053    0.0017    0.0020    0.0056    0.0092    0.0129...
    0.0167    0.0205    0.0244    0.0285    0.0327    0.0188    0.0045    0.0098    0.0239    0.0377    0.0507    0.0630...
    0.0741    0.0841    0.0928    0.0475    0.0053    0.0365    0.0807    0.1301    0.1883    0.2596    0.3501    0.4672...
    0.6202    0.6757    0.7188    0.7450    0.7515    0.7376    0.7051    0.6575    0.5990    0.5339    0.4659    0.3975...
    0.3306    0.2661    0.2041    0.1446    0.0870    0.0307    0.0252    0.0815    0.1390    0.2443    0.3548    0.4713...
    0.5925    0.7141    0.8278    0.9218    0.9827    0.9992    0.9678    0.7625    0.5944    0.4615    0.3578    0.2766...
    0.2125    0.1607    0.1179    0.0814    0.0491    0.0192    0.0097    0.0391    0.0704    0.1054    0.1458    0.1943...
    0.2539    0.3289    0.4245    0.2734    0.0790    0.1280    0.3145    0.4516    0.5220    0.5257    0.4789    0.4052...
    0.3255    0.1969    0.1238    0.0783    0.0473    0.0239    0.0039    0.0155    0.0371    0.0644    0.1028    0.1148...
    0.1266    0.1375    0.1464    0.1524    0.1542    0.1509    0.1415    0.1258    0.1037    0.0760    0.0441    0.0096...
    0.0255    0.0591    0.0893    0.1145    0.1338    0.1466    0.1531    0.0957    0.0502    0.0105    0.0281    0.0698...
    0.1198    0.1854    0.2776    0.4153    0.6309    0.7705    0.9110    1.0319    1.1099    1.1279    1.0829    0.9863...
    0.8575    0.7154    0.5737    0.4396    0.3155    0.2007    0.0924    0.0126    0.1181    0.2277    0.3446    0.4711...
    0.6074    0.5509    0.4846    0.4122    0.3367    0.2600    0.1833    0.1071    0.0313    0.0444    0.1203    0.1124...
    0.1044    0.0964    0.0883    0.0802    0.0721    0.0639    0.0558    0.0476    0.0394    0.0313    0.0231    0.0149...
    0.0068    0.0014    0.0095    0.0177    0.0259    0.0340    0.0422    0.0369    0.0315    0.0262    0.0209    0.0156...
    0.0102    0.0049    0.0004    0.0057    0.0111    0.0098    0.0084    0.0071    0.0058    0.0045    0.0032    0.0019...
    0.0005    0.0008    0.0021    0.0019    0.0018    0.0017    0.0015    0.0014    0.0012    0.0011    0.0010    0.0008...
    0.0007    0.0005    0.0004    0.0003    0.0001    0.0000    0.0002    0.0003    0.0004    0.0006    0.0007    0.0006...
    0.0005    0.0005    0.0004    0.0003    0.0002    0.0001    0.0001    0.0000    0.0001    0.0001    0.0001    0.0001...
    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001...
    0.0001    0.0000    0.0000    0.0000    0.0000    0.0000    0.0001    0.0001    0.0002    0.0002    0.0003    0.0003...
    0.0003    0.0004    0.0004    0.0002    0.0000    0.0002    0.0004    0.0006    0.0009    0.0011    0.0013    0.0015...
    0.0017    0.0014    0.0011    0.0007    0.0004    0.0001    0.0003    0.0006    0.0010    0.0013    0.0016    0.0020...
    0.0023    0.0026    0.0030    0.0033    0.0036    0.0040    0.0043    0.0046    0.0050    0.0018    0.0013    0.0044...
    0.0076    0.0107    0.0139    0.0170    0.0201    0.0233    0.0264    0.0213    0.0161    0.0109    0.0058    0.0006...
    0.0045    0.0097    0.0149    0.0200    0.0252    0.0303    0.0355    0.0407    0.0458    0.0510    0.0561    0.0613...
    0.0664    0.0715    0.0766    0.0282    0.0201    0.0684    0.1169    0.1654    0.2140    0.2622    0.3097    0.3555...
    0.3987    0.3160    0.2358    0.1583    0.0830    0.0089    0.0651    0.1400    0.2169    0.2964    0.3786    0.4627...
    0.5467    0.6272    0.6994    0.7572    0.7946    0.8070    0.7927    0.7535    0.6946    0.5194    0.3866    0.2854...
    0.2066    0.1435    0.0906    0.0440    0.0003    0.0433    0.0899    0.0845    0.0782    0.0710    0.0629    0.0540...
    0.0445    0.0344    0.0239    0.0130    0.0020    0.0012    0.0044    0.0076    0.0108    0.0139    0.0170    0.0200...
    0.0229    0.0258    0.0285    0.0312    0.0337    0.0361    0.0384    0.0406    0.0426    0.0445    0.0462    0.0478...
    0.0492    0.0148    0.0188    0.0533    0.0906    0.1328    0.1822    0.2421    0.3165    0.4105    0.5300    0.5791...
    0.6229    0.6582    0.6825    0.6937    0.6912    0.6754    0.6479    0.6111    0.5676    0.5200    0.4705    0.421...
    0.3727    0.3265    0.2828    0.2417    0.2032    0.1671    0.1330    0.1192    0.1059    0.0932    0.0810    0.0693...
    0.0579    0.0469    0.0361    0.0255    0.0150    0.0043    0.0237    0.0434    0.0635    0.0843    0.1060    0.1287...
    0.1527    0.1782    0.2053];
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表