欢迎来到我的范文网!

matlab中的spline是什么边界条件

自我介绍 时间:2020-02-12

【www.myl5520.com--自我介绍】

matlab中常见函数功用
篇一:matlab中的spline是什么边界条件

⊙在matlab中clear,clc,clf,hold作用介绍

clear是清变量,

clc只清屏,

clf清除图形窗口上的旧图形,

hold on是为了显示多幅图像时,防止新的窗口替代旧的窗口。

①format:设置输出格式

对浮点性变量,缺省为format short.

format并不影响matlab如何计算和存储变量的值。对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的。对整型变量采用整型数据。整型变量总是根据不同的类(class)以合适的数据位显示,例如,3位数字显示显示int8范围 -128:127。

format short, long不影响整型变量的显示。

format long 显示15位双精度,7为单精度(scaled fixed point)

format short 显示5位(scaled fixed point format with 5 digits)

format short eng 至少5位加3位指数

format long eng 16位加至少3位指数

format hex 十六进制

format bank 2个十进制位

format + 正、负或零

format rat 有理数近似

format short 缺省显示

format long g 对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式。

format short g 5位定点或浮点格式

format short e 5位浮点格式

format long e 双精度为15位浮点格式,单精度为7为浮点格式

②plot函数

基本形式

>> y=[0 0.58 0.70 0.95 0.83 0.25];

>> plot(y)

生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。

>> x=linspace(0,2*pi,30); % 生成一组线性等距的数值

>> y=sin(x);

>> plot(x,y)

生成的图形是上30个点连成的光滑的正弦曲线。

多重线

在同一个画面上可以画许多条曲线,只需多给出几个数组,例如

>> x=0:pi/15:2*pi;

>> y=sin(x);

>> w=cos(x);

>> plot(x,y,x,w)

则可以画出多重线。另一种画法是利用hold命令。在已经画好的图形上,若设置hold on,MATLAB将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如:

>> x=linspace(0,2*pi,30); y=sin(x); plot(x,y)

>> hold on

>> z=cos(x); plot(x,z)

>> hold off

线型和颜色

MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下:

线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线。

线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆

颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青.

以下面的例子说明用法:plot(x,y,线形,颜色,线条宽度),

>> x=0:pi/15:2*pi;

>> y1=sin(x); y2=cos(x);

>> plot(x,y1,’b:+’,x,y2,’g-.*’)matlab中的spline是什么边界条件。

网格和标记

在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。

>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);

>> plot(x,y,x,z)

>> grid

>> xlabel(‘Independent Variable X’)

>> ylabel(‘Dependent Variables Y and Z’)

>> title(‘Sine and Cosine Curves’)

也可以在图形的任何位置加上一个字符串,如用:

>> text(2.5,0.7,’sinx’)

表示在坐标x=2.5, y=0.7处加上字符串sinx。更方便的是用鼠标来确定字符串的位置,方法是输入命令:

>> gtext(‘sinx’)

在图形窗口十字线的交点是字符串的位置,用鼠标点一下就可以将字符串放在那里。

坐标系的控制

在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:

axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值 axis equal 或 axis(‘equal’) x轴和y轴的单位长度相同

axis square 或 axis(‘square’) 图框呈方形

axis off 或 axis(‘off’) 清除坐标刻度

还有axis auto axis image axis xy axis ij axis normal axis on axis(axis)用法可参考在线帮助系统。

多幅图形可以在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图,如

>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);

>> u=2*sin(x).*cos(x); v=sin(x)./cos(x);

>> subplot(2,2,1),plot(x,y),axis([0 2*pi –1 1]),title(‘sin(x)’)

>> subplot(2,2,2),plot(x,z),axis([0 2*pi –1 1]),title(‘cos(x)’)

>> subplot(2,2,3),plot(x,u),axis([0 2*pi –1 1]),title(‘2sin(x)cos(x)’)

>> subplot(2,2,4),plot(x,v),axis([0 2*pi –20 20]),title(‘sin(x)/cos(x)’)

图形的输出

在数学建模中,往往需要将产生的图形输出到Word文档中。通常可采用下述方法:首先,在MATLAB图形窗口中选择【File】菜单中的【Export】选项,将打开形输出对话框,在该对话框中可以把图形以emf、bmp、jpg、pgm等格式保存。然后,再打开相应的文档,并在该文档中选择【插入】菜单中的【图片】选项插入相应的图片即可。

③zeros 和 ones 这两个函数是怎么用的

ones产生全1数组,zeros产生全零数组。

ones(a,b)产生a行b列全1数组

ones(a)产生a行a列全1叔祖

例如:

ones(1,3)产生1行3列全1数组[1 1 1]

ones(2)产生 1 1

1 1

zeros用法同ones,只是产生的是全0数组

④MATLAB中的length函数

在MATLAB中:

size:获取数组的行数和列数

length:数组长度(即行数或列数中的较大值)

numel:元素总数。

s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。

[r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。

如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。其中r=size(A,1)该语句返回的时数组A的行数, c=size(A,2) 该语句返回的时数组A的列数。

n=numel(A)该语句返回数组中元素的总数。

n=length(A):如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A));如果A为空数组,则返回0;如果A是一个向量则返回A的长度。n=max(size(A):若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数。

⑤【matlab】spline和ppval的意义

x=[0.1 0.05 0.02 0.01 0.005 0.001];

y=[100 94.68 72.10 41.82 27.13 11.69];

x1=log10(x);

y1=y;

figure,plot(x1,y1,'o')

xx=-3.0 : 0.04 : -1;

pp=spline(x1,y1);

y2=ppval(pp,xx)

figure,plot(xx,y2,'o')

xx=-3.0 : 0.04 : -1;%表示xx从-3.0开始每隔0.04取值到-1为止(即xx=[-3.0,-2.96,-2.92……,-0.96,-1])

pp=spline(x1,y1);%表示样条插值

y2=ppval(pp,xx)%插值曲线上,xx所对应的yy

可以把最后两句写成yy=spline(x1,y1,xx);

最后画出曲线plot(xx,yy,'-')就是等效于plot(xx,y2,'-')

⑥用法:linspace(x1,x2,N) linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。

相关函数:logspace 用法:x=logspace(a, b, n)

Matlab Spline 三次样条插值多项式表达式问题
篇二:matlab中的spline是什么边界条件

如何运用MATLAB 三次样条插值的问题,今天做作业,突然想用Matlab搞搞。

题目如下:

清华大学出版社的《数值分析(第5版)》

P49,20题。

x=[0.25 0.3 0.39 0.45 0.53];

y=[ 0.5 0.5477 0.6245 0.6708 0.7280 ]

pp=csape(x,y,'second',[0,0.0]);

disp(pp.coefs);

其中COEFS的含义是在Xi-Xi+1区间上的多项式是,例如COEFS数组第一行的意思是在X=0.25到X=0.3的区间上时表达式是-6.2652*(X-0.25)^3+0.9697*(X-0.25)^1+0.5;

-6.2652 0.0000 0.9697 0.5000

1.8813 -0.9398 0.9227 0.5477

-0.4600 -0.4318 0.7992 0.6245

2.1442 -0.5146 0.7424 0.6708

关于csape的用法引用自:

csape,是计算在各种边界条件下的三次样条插值。

pp = csape(x,y,conds)

其中conds主要有以下的选项variational(自然边界条件,首末点二阶导数均为0),second(指定首末点的二阶导数),periodic(周期性边界条件,首末点的0~2阶导数相等),complete(给定导数情况,默认)

function pp = csape(x,y,conds,valconds)

%pp=csape(x,y,'变界类型','边界值'),生成各种边界条件的三次样条插值. 其中,(x,y)为数据向量

%边界类型可为:'complete',给定边界一阶导数.

% 'not-a-knot',非扭结条件,不用给边界值.

% 'periodic',周期性边界条件,不用给边界值.

% 'second',给定边界二阶导数.

% 'variational',自然样条(边界二阶导数为0)

% .

%例 考虑数据

% x | 1 2 4 5

% ---|-------------

% y | 1 3 4 2

%边界条件S''(1)=2.5,S''(5)=-3,

% x=[1 2 4 5];y=[1 3 4 2];

% pp=csape(x,y,'second',[2.5,-3]);pp.coefs % xi=1:0.1:5;yi=ppval(pp,xi); % plot(x,y,'o',xi,yi);

定义边界条件
篇三:matlab中的spline是什么边界条件

定义边界条件

在Boundary菜单中选择Boundary mode选项,则显示几何模型的边界。选定要裁减的线条后,使用Boundary菜单的Remove Subdomain Border命令对其进行裁减。如图5-7所示:

图5-7(a) 地铁站台电场边界条件

图5-7(b) 地铁站台磁场边界条件

电场边界条件:内边界是接触轨、走行轨表面,内外边界都设置为Drichlet边界条件,接触轨电位为为750V,走行轨电位为0V,其余边界电位为0V。如图5-8(a),5-8(b)所示。

图5-8(a) 求解电场时接触轨轨边界条件的设定

图5-8(b) 求解电场时走行轨边界条件的设定

磁场边界条件:忽略站台外漏磁场影响整个模型外边界设置为Drichlet边界条件,A=0。如图5-8(c)所示。

图5-8(c) 求解磁场时的边界条件

然后进入PDE模式,显示子区域编号如图5-9所示:

图5-9 电场、磁场几何模型

分析地铁站台电场时,静电场是介电常数和空间电荷密度的函数。在求解域中空间内有0,而在0的情况下,介电常数取值不影响静电场分布情况。PDE的参数设定如5-10所示。

图5-10 站台电场PDE参数设定

分析地铁站台磁场时,静磁场是磁导率和电流密度J的函数。其中

J

I

(5-1) S

式中I为钢轨电流的大小(A),S为钢轨横截面积(m2)。

I

(5-2) P

式中I为钢轨电流的大小(A),P为钢轨横截面周长(cm)。

H

由于相对磁导率能更方便地表征磁介质磁性,因此用r代替以简化求解过程。由实验得到的r(H)函数曲线即可确定相对磁导率[13],如图5-11所示。

r

60050040030020010000246

81012141618202224262830H(A/cm)

图5-11 钢轨的r(H)函数曲线图

磁场接触轨参数:接触轨的电流为1000A,应用公式(5-1)得电流密度

J1000/0.00654152905A/m2;由公式(5-2)得磁场强度

H1000/5518.2A/cm。根据图5-11r(H)函数曲线得接触轨的相对磁导率r

为394。如图5-12(a)所示。

图5-12(a) 站台磁场接触轨PDE参数设定

磁场走行轨参数:在计算走行轨电流时应考虑杂散电流的影响,取杂散电流为总电流的10%,所以走行轨电流为1000(110%)/2450A,应用公式(5-1)

A/m2,得走行轨电流密度J450/0.0065768493由于走行轨电流方向和接触轨A/m2。应用公式(5-2)得走行轨磁场强度方向相反,所以电流密度取68493

H450/627.26A/cm,根据图5-11r(H)函数曲线可得走行轨的相对磁导率

r为481。如图5-12(b)所示。

图5-12(b) 站台磁场走行轨PDE参数设定

其余区域参数设定为1,J为0。如图5-12(c)所示。

图5-12(c)站台磁场剩余区域PDE参数设定

下一步进入Mesh模式,在这里可以设置网格的划分方式如最大边长度,网格细化比例等。在parameters中设置,如图5-13所示:

三次样条插值自然边界条件
篇四:matlab中的spline是什么边界条件

例:已知一组数据点

次样条插值函数满足

并针对下面一组具体实验数据

,编写一程序求解三 . 求解,其中边界条件为matlab中的spline是什么边界条件。

1)三次样条插值自然边界条件源程序:

function s=spline3(x,y,dy1,dyn)

%x为节点,y为节点函数值,dy1,dyn分别为x=0.25,0.53处的二阶导

m=length(x);n=length(y);

if m~=n

error('x or y输入有误')

return

end

h=zeros(1,n-1);

h(n-1)=x(n)-x(n-1);

for k=1:n-2

h(k)=x(k+1)-x(k);

v(k)=h(k+1)/(h(k+1)+h(k));

u(k)=1-v(k);

end

g(1)=3*(y(2)-y(1))/h(1)-h(1)/2*dy1;

g(n)=3*(y(n)-y(n-1))/h(n-1)+h(n-1)/2*dyn;matlab中的spline是什么边界条件。

for i=2:n-1

g(i)=3*(u(i-1)*(y(i+1)-y(i))/h(i)+v(i-1)*(y(i)-y(i-1))/h(i-1)); end

for i=2:n-1;

A(i,i-1)=v(i-1);

A(i,i+1)=u(i-1);

end

A(n,n-1)=1;

A(1,2)=1;

A=A+2*eye(n);

M=zhuigf(A,g); %调用函数,追赶法求M

fprintf('三次样条(三对角)插值的函数表达式\n');

syms X;

for k=1:n-1

fprintf('S%d--%d:\n',k,k+1);

s(k)=(h(k)+2*(X-x(k)))./h(k).^3.*(X-x(k+1)).^2.*y(k)...

+(h(k)-2*(X-x(k+1)))./h(k).^3.*(X-x(k)).^2.*y(k+1)... +(X-x(k)).*(X-x(k+1)).^2./h(k).^2*M(k)+(X-x(k+1)).*... (X-x(k)).^2./h(k).^2*M(k+1);

end

s=s.';

s=vpa(s,4);

%画三次样条插值函数图像

for i=1:n-1

X=x(i):0.01:x(i+1);

st=(h(i)+2*(X-x(i)))./(h(i)^3).*(X-x(i+1)).^2.*y(i)...

+(h(i)-2.*(X-x(i+1)))./(h(i)^3).*(X-x(i)).^2.*y(i+1)...

+(X-x(i)).*(X-x(i+1)).^2./h(i)^2*M(i)+(X-x(i+1)).*...

(X-x(i)).^2./h(i)^2*M(i+1);

plot(x,y,'o',X,st);

hold on

End

plot(x,y);

grid on

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%调用的函数:

%追赶法

function M=zhuigf(A,g)

n=length(A);

L=eye(n);

U=zeros(n);

for i=1:n-1

U(i,i+1)=A(i,i+1);

end

U(1,1)=A(1,1);

for i=2:n

L(i,i-1)=A(i,i-1)/U(i-1,i-1);

U(i,i)=A(i,i)-L(i,i-1)*A(i-1,i);

end

Y(1)=g(1);

for i=2:n

Y(i)=g(i)-L(i,i-1)*Y(i-1);

end

M(n)=Y(n)/U(n,n);

for i=n-1:-1:1

M(i)=(Y(i)-A(i,i+1)*M(i+1))/U(i,i);

end

2)在命令窗口输入x,y,dy1,dyn,得到三次样条函数:

>>x=[0.25,0.3,0.39,0.45,0.53];

>>y=[0.5,0.5477,0.6245,0.6708,0.7280];

>>dy1=0;

>>dyn=0;

>>s=spline3(x,y,dy1,dyn)

运行结果:

三次样条(三对角)插值的函数表达式

S1--2:

S2--3:

S3--4:

S4--5:

.5000*(-3600.+.1600e5*X)*(X-.3000)^2+.5477*(5200.-.1600e5*X)*(X-.2500)^2+394.8*(X-.2500)*(X-.3000)^2+355.2*(X-.3000)*(X-.2500)^2

.5477*(-699.6+2743.*X)*(X-.3900)^2+.6245*(1193.-2743.*X)*(X-.3000)^2+109.6*(X-.3000)*(X-.3900)^2+96.77*(X-.3900)*(X-.3000)^2

.6245*(-3333.+9259.*X)*(X-.4500)^2+.6708*(4444.-9259.*X)*(X-.3900)^2+217.7*(X-.3900)*(X-.4500)^2+207.6*(X-.4500)*(X-.3900)^2

.6708*(-1602.+3906.*X)*(X-.5300)^2+.7280*(2227.-3906.*X)*(X-.4500)^2+116.8*(X-.4500)*(X-.5300)^2+109.2*(X-.5300)*(X-.4500)^2

如将三次样条函数加以整理,可用如下程序:

s=collect(s);

则输出结果为:

s=

.4595000000000-13.200*X^3+9.9000000*X^2-1.48800000000*X .37459306800000-4.2924*X^3+3.66332200*X^2-.137976090000*X .5180681700000-3.3917*X^3+3.90576600*X^2-.733130370000*X -.408614400000e-1+2.5768*X^3-4.03188800*X^2+2.868770320000*X

本文来源:http://www.myl5520.com/fanwendaquan/101210.html

推荐内容