77范文网 - 专业文章范例文档资料分享平台

matlab简单编程21个题目及答案(4)

来源:网络收集 时间:2018-12-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

编制的m文件如下所示:

function xin18; %建立文件名为xin18 clc,clear %清屏,清内存 a=input('请输入数据','s') %输入数据 n=length(a); %计算a的长度 b=[]; %令b为空集 e=[]; %令e为空集 d=','; %令d为‘,’

z=fix(n/3); %z为对三求商然后对零取整,z是添加几个‘,’的标志 if rem(n,3)~=0; %如果n对三取余不等于0

c=rem(n,3); %c为对三取余数之后的余数,为1或2 for i=1:c %i的取值范围

b=[b,a(i)]; %将a的最高位赋值给b,如果c=1,b=a最高位上的一位数,如果c=2,b=a最高位上的两位数 end

if c==1 %讨论c=1的情况 for i=1:z %i的变化范围

e=[e,d]; %将逗号放到e中去 for i=(3*i-1):(3*i+1) %i的变化范围

e=[e,a(i)]; %根据i随z的变化,将2,3,4。5,6,7。……等位置上的数据放到e中的逗号后面

end %结束for循环 end %结束for循环。此处的for循环,就是输入一个逗号,输入三个数据,以此类推

else c==2 %讨论c=2的情况 for i=1:z %i的变化范围

e=[e,d]; %将逗号放到e中去 for i=(3*i):(3*i+2) %i的取值范围

e=[e,a(i)]; %将3,4,5。6,7,8。…等位置上的数据放到逗号后面 end %结束for循环

end %结束for循环 end %结束if循环

else %此处讨论恰好整除的情况 for i=1:3 %i的取值范围

b=[b,a(i)]; %整除的情况下把前三位直接赋值到b中去 end %结束for循环

for i=1:(z-1) %i的取值范围。由于恰好整除,所以前三位不用加逗号,所以逗号数为z-1

e=[e,d]; %将逗号放到e中 for i=3*i+1:3*i+3 %i的取值范围

e=[e,a(i)]; %根据i随z的变化,将4,5,6。7,8,9。……等位置上的数据放到e中的逗号后面

end %结束for循环 end %结束for循环

end %结束if循环

f=[b,e] %将b得到的前几位与e得到的逗号数据放入f中去 end %结束function

19、求出矩阵a中每行元素的平均值和平均最大的行号。 编制的m文件如下所示:

function lin19; %定义文件名为lin19 clc,clear %清屏,清内存 a=input('输入矩阵:'); %输入矩阵 b=[]; %定义b为空集

[i,j]=size(a); %对a求行列数,放到[i,j]中 for i=1:i %i的取值范围 s=0; %令s=0

for j=1:j %j的取值范围

s=s+a(i,j); %对i一定时对行累加,改变i值,不同的行重新进行求和 end %结束for循环

fprintf(' 平均值(i=%d)=%d\\n',i,s/j) %输出每行平均值 b=[b,s/j]; %平均值放入b中去 end %结束for循环 w=0; %令w=0

for p=1:i %p的取值范围

if b(p)>w %每一行的平均值与w比较

w=b(p); %如果平均值大于w,将平均值赋值给w end %结束if循环 end %结束for循环

fprintf('平均最大行 %d\\n',p) %输出平均最大的行号 end %结束function 20、

(使用函数csapi和spapi及其相关函数) x=3:0.4:8; %x的取值

y=(sqrt(1+x)-sqrt(x-1))./(sqrt(2+x)+sqrt(x-1)); %y的表达式 Sp=csapi(x,y) %得到分段三次样条的有关数据 Sp =

form: 'pp'

breaks: [3 3.4000 3.8000 4.2000 4.6000 5 5.4000 5.8000 6.2000 6.6000 7.0000 7.4000 7.8000]

coefs: [12x4 double] pieces: 12

order: 4 dim: 1

Sp.coefs %显示每个区间上三次多项式的系数 ans =

-0.0034 0.0169 -0.0534 0.1605 -0.0034 0.0127 -0.0415 0.1416 -0.0018 0.0086 -0.0330 0.1268 -0.0013 0.0064 -0.0270 0.1149 -0.0009 0.0048 -0.0225 0.1050 -0.0007 0.0038 -0.0190 0.0968 -0.0005 0.0030 -0.0163 0.0897 -0.0004 0.0024 -0.0142 0.0836 -0.0003 0.0020 -0.0124 0.0783 -0.0002 0.0016 -0.0110 0.0737 -0.0002 0.0014 -0.0098 0.0695 -0.0002 0.0012 -0.0087 0.0658

ezplot('(sqrt(1+x)-sqrt(x-1))./(sqrt(2+x)+sqrt(x-1))',[3,8]) %在区间绘制y

hold on %保持figure不关闭 fnplt(Sp) %绘制出插值效果

分段三次样条插值拟合效果:图a,函数拟合

syms x %定义自变量x y=(sqrt(1+x)-sqrt(x-1))./(sqrt(2+x)+sqrt(x-1)); %y的表达式 y2=diff(y,x,2); %对函数求二阶导数

ezplot(y2,[3,8]) %绘制在区间上二阶导数的图像

hold on %保持figure窗口不关闭 s2=fnder(Sp,2);fnplt(s2) %对二阶导数进行插值拟合

分段三次样条插值拟合效果:图b,函数二阶导数

x=3:0.4:8; %x的取值

y=(sqrt(1+x)-sqrt(x-1))./(sqrt(2+x)+sqrt(x-1)); %y的表达式 Sp=spapi(6,x,y) %6阶B-样条的相关数据 Sp =

form: 'B-'

knots: [1x19 double] coefs: [1x13 double] number: 13 order: 6 dim: 1

ezplot('(sqrt(1+x)-sqrt(x-1))./(sqrt(2+x)+sqrt(x-1))',[3,8]) %绘制区间上y的图像 hold on %保持figure窗口不关闭 fnplt(Sp) %对B-样条进行插值拟合

B-样条插值拟合效果:图c,函数拟合

syms x %定义自变量x

y=(sqrt(1+x)-sqrt(x-1))./(sqrt(2+x)+sqrt(x-1)); %y的表达式 y2=diff(y,x,2); %对函数求二阶导数

ezplot(y2,[3,8]) %画出区间上二阶导数的图像 hold on %保持figure窗口不关闭 s2=fnder(Sp,2);fnplt(s2) %对函数进行插值拟合

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库matlab简单编程21个题目及答案(4)在线全文阅读。

matlab简单编程21个题目及答案(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/373115.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: