请问Matlab中如何将离散点连成曲线,谢谢了!

请问Matlab中如何将离散点连成曲线,谢谢了!,第1张

>x=[0 1 2 3 4 5 6 7 8 885],y=[13 121 11 105 101 99 96 93 90 89] //MATLAB中输入X及Y的数值

>xx=0:001:10; //对X轴进行划分成若干等份,设置好参数

>yy=spline(x,y,xx);//三次方样条数据插值

>plot(x,y,'o',xx,yy)  //输出结果

程序运行如下:

扩展资料

样条线可以采用单段和多段的方式创建。对于单段样条线来说。阶次=点数-1,因此单段样条线最多只能使用25个点。单段构造方式受到一定的限制,定义点的数量越多,样条线的阶次越高,而阶次越高样条线会出现意外结果,如变形等。而且单段样条线不能封闭,因此不建议使用单段构造样条线。

在插值问题中,样条插值通常比多项式插值好用。用低阶的样条插值能产生和高阶的多项式插值类似的效果,并且可以避免被称为龙格现象的数值不稳定的出现。并且低阶的样条插值还具有“保凸”的重要性质。

在计算机科学的计算机辅助设计和计算机图形学中,样条通常是指分段定义的多项式参数曲线。由于样条构造简单,使用方便,拟合准确,并能近似曲线拟合和交互式曲线设计中复杂的形状,样条是这些领域中曲线的常用表示方法。

参考资料来源:百度百科—样条

题主给出的一组公式要求x(i),y(i)值(离散点),通过分析可以按下列思路来实现。

1、根据θ(0~π)的范围,求出

theta=0:pi/20:pi;

n=50;R=5;

U=sqrt(n^2-cos(theta)^2)-sin(theta);

Mx=n-cos(theta);

My=-(U+sin(theta));

2、根据x(end),y(end)值从后两公式,不难发现,只有已知x(end),y(end)值,才能求x(end-1),y(end-1)值,用for循环语句求出x(end-1),y(end-1)值,可以用solve函数求解。

3、求出x(i),y(i)值,可以用plot函数绘出θ~x和θ~y曲线图,绘出x~y曲线图

这里取n=50;R=5; 可以得到如下结果

由于题主没有给出具体的已知条件,所以上述根据我的理解假设的。

离散点求导都是用差分来进行的,差分一般分前向差分、后向差分和中心差分,形式分别为

ux(i) = u(i)-u(i-1);

ux(i) = u(i+1)-u(i);

ux(i) = (u(i+1)-u(i-1))/2;

假如你原始数据在A1:A100

那么在B1输入公式:

=IF(ABS(A1-AVERAGE($A$1:$A$100))>2STDEV($A$1:$A$100),"",A1)

公式填充B1:B100

将与平均值相减的绝对值超过2倍标准差的数据剔除。

然后用B1:B100做散点图

正弦波信号发生器离散点计算方法:

1将连续的正弦波信号进行离散化

设正弦波周期为T=2pi,对一个周期的正弦波进行100次采样,则

相应采样点的离散值为:

sin(2pi/100)

sin(2pi2/100)

sin(2pin/100) 0<=n<=100

sin(2pi100/100)

对于采样点离散值的计算可以采用Matlab进行计算,程序见下。

2将离散化后的正弦波一个整周期存储到Rom中

(1)将离散后的数据进行定点化,Rom的规格是256x8bits,数据格式1bit符号位和7bits小数位

(2)创建Rom

clc;

clear all;

%% 将连续的正弦波信号进行离散化

% 设正弦波周期为T=2pi,对一个周期的正弦波进行100次采样,则

% 相应采样点的离散值为:

% sin(2pi/100)

% sin(2pi2/100)

%

% sin(2pin/100) 0<=n<=100

%

% sin(2pi100/100)

%% 1设置离散化参数

T = 2pi; %正弦波周期

N = 2^8; %采样点个数

sp = 0:(N-1); %采样点

%% 2进行离散化采样

sin_data = sin(Tsp/N); % sin_data取值为-1至+1之间的浮点数

%% 3将离散后的正弦波存储到Rom中

% 将离散后的数据进行定点化,

% Rom的规格是256x8bits,数据格式1bit符号位和7bits小数位

fix_point_sin_data = sin_data (2^7-1);

fix_point_sin_data = fix(fix_point_sin_data);

% 对负数取补码,便于存储Rom中

for i=1:N

if fix_point_sin_data(i)<0

fix_point_sin_data(i) = 256+fix_point_sin_data(i);

end

end

%% 生成mif文件

fid = fopen('rom_256x8_initmif','w+');

fprintf(fid,'WIDTH=8;\n');

fprintf(fid,'DEPTH=256;\n');

fprintf(fid,'\n');

fprintf(fid,'ADDRESS_RADIX=UNS;\n');

fprintf(fid,'DATA_RADIX=UNS;\n');

fprintf(fid,'\n');

fprintf(fid,'CONTENT BEGIN\n');

for i=0:255

fprintf(fid,' %d : %d;\n',i,fix_point_sin_data(i+1));

end

fprintf(fid,'END;\n');

fclose(fid);

对于正弦波,如何能够将输出频率提高?离散后的正弦波采样值存储在rom中,通过对rom

进行寻址,读出存储的数据即为正弦波的采样值,因此可以通过控制对rom寻址的快慢(步长)

,来控制输出正弦波的频率

以上就是关于请问Matlab中如何将离散点连成曲线,谢谢了!全部的内容,包括:请问Matlab中如何将离散点连成曲线,谢谢了!、如何用matlab编程计算该组公式的离散点、怎么利用MAtlab求离散点的导数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:聚客百科

原文地址: https://juke.outofmemory.cn/life/3842797.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-08
下一篇 2023-05-08

发表评论

登录后才能评论

评论列表(0条)

保存