1.已知矩阵A为4行n列矩阵,请创建a=1.03,b=1.06,c=1.15,d=0.88,n=15时的矩阵A
function A=myfun1
n=15
A=[1.03 1.06 1.15 0.88]'
C=[1.03 1.06 1.15 0.88]'
for i=2:n
B=power(C,i)
A=[A B]
end
A
end
2.已知函数f(x)=.请在一个函数文件中编写子函数fun计算f(x)数值,而主函数调用fun计算函数在x=—1:0.1:5处的函数值v.该主函数返回v.参考程序框架如下:
function v=testmain %下面添加代码调用funfunction r=fun(x) % 计算分段函数值
function s=myfuntion(x)%主函数,推荐创立函数文件而不是脚本文件
s=zeros(size(x)); %生成一个与x同型的0向量
for i=1:length(x) %循环体的使用
s(i)=mycal(x(i)); %x(i)是引用第i个元素
end
function r=mycal(x) %子函数,已知节点x,计算分段函数值
if x<=-1
r=(x-1)^2; %不用点乘的原因?
elseif x<1
r=x^2;
else
r=(x+1)^2;
end
3.考察已知函数,求导,并带入一个常数
function r=myfun3
syms x
syms a
syms b
y1=diff(exp(a*x)*cos(b*x));
r=subs(y1,x,a-b)
end
4.
function v=myfun4
v=1.07
C=1.07
for i=2:2:38
b=power(C,i)
v=v+b
end
end
5. 请在1000到2000中自小到大的整数中,找出第3个和第7个能被55整除的整数组成的行向量。
编写本问题的函数文件第一行格式如下(函数名、文件名自己设定):
function s=myfun
function A=myfun5
i=1000:2000;
idx=find(mod(i,55)==0);
A=[i(idx(3)),i(idx(7))];
end
6.已知y=1+2+x2sin x,xe[-2元,2元],将[-2元,2元]区间分为等间距的100个点e"
包含区间左右两个端点,计算出在这100个节点(节点从小到大排序)的函数值。用一个行向量存储这些函数值,并返回该向量。
function y=myfun6
syms x;
s=linspace(-2*pi,2*pi,100);
s1=sort(s);
f=(1+((2+x^2)/exp(x)))*sin(x);
v=[];
for i=1:length(s1)
f1=subs(f,x,s1(i));
f2=double(f1);
v=[v,f2];
end
% [y,idx]=sort(v);
y=v;
end
7.使用MATLAB函数 plot 绘制函数x=sin'tt e[0,元]的图形,并返回x(1),y(1)在y=e01.
t=0:0.01:pi处函数值,分别用变量x、y存储(均用行向量存储)
function [x,y]=myfun7
clc,syms t
t=0:0.01:pi;
x=sin(t).^2;
y=exp(cos(t));
end
8.矩阵A= 2 6 1 23 编写一个函数依次返回A的逆矩阵和行列式.
1 0 7
2 1 3 8
注意:编写一个函数返回2个参数。
function [B,C]=myfun8
A=[8 2 3 1;2 6 1 2 ;1 0 7 3;2 1 3 8]
B=inv(A);
C=det(B);
end
9.已知矩阵A=4 1,编写一个函数文件返回矩阵A.
function A=myfun9
B=[2 4 1 3];
A=B';
end
10.程序文件首行参考下列代码:
function A-myfun
CSD/W acLwis
设z=e""(*) cos(xy)请用meshgrid函数产生区域-4<x~4,-4s5y<4上的网格,并计
算z在这些点的函数值,网格点由x=-4:0.2:4, y=-4:0.2:4确定 CSON
function v=myfun9
x = -4:0.2:4;
y = -4:0.2:4;
[X,Y] = meshgrid(x,y)
v=exp(sin(X.*Y)).*cos(X.*Y);
11.请找出100到500中能被6或8整除,又不能被14整除的所有这些整数的和。编写本问题的函数文件第一行格式如下(函数名、文件名自己设定):
function s=myfun
function s=myfun11
x=100:500;
s=0;
for i=1:length(x)
if (rem(x(i),6)==0 | rem(x(i),8)==0 )& rem(x(i),14)~=0
s=s+x(i);
end
end
end
12.用公式 =e来计算e的近似值。用循环语句编程给出前20项的和S:
function x=myfun12
x=0;
for n=0:20
x=x+1/factorial(n);
end
end
13.编写程序构造一个25行10列的元素均为1的矩阵G,在矩阵G的每个对角元加上14得到矩阵V,编写函数返回矩阵V.
function A=myfun13
G=ones(25,10);
% A(1,1)=15;
% A(25,1)=15;
% A(1,10)=15;
% A(25,10)=15;
B=eye(25,10);
A=G+14*B;
end
14.编写程序在区间[6,50]产生200个等间距节点,且这些节点包含区间的端点该函数文件的第1行参
考格式如下(函数名称可以自定义):
function c=myfun
function C=myfun14
C=linspace(6,50,200);
end
15.已知行向量qq,请编写程序提取qq的第2至第6个数赋给数组bb。数组 qq 的产生代码见参考函数的程序语句。
该函数的前3行格式如下(含qq的构造程序):
function bb=myfun
rand(’ seed',2743)
qq=fix(17*rand(1,38)):
function bb=myfun15
rand('seed',2743);
qq=fix(17*rand(1,38));
bb=qq(2:6);
end
16.已知矩阵u,v,w(已经在程序框架中构造),而分块矩阵 A=田w 编写一个函数文件返回矩阵A.
程序框架如下:
ction A-myfun
u-[4 1:9 2]:y=[1 8:1 5];w-[5 8:1 61: CEDN @w
function A=myfun
u=[4 1;9 2];
v=[1 8;1 5];
w=[5 8;1 6];
A=[u v;w u];
end
17.调用函数find找出向量v中元素大于等于11,且小于等于23的所有元素的和r,编写个函数返回r
程序框架如下,包含了构造向量v的代码。
funetion r=myfun
%向量v由下列代码
rand( 4019)
v=fix(30*rand(1,50)
function r=myfun17
rand('seed',4019)
v=fix(30*rand(1,50));
idx=find((v>=11)&(v<=23));
r=sum(v(idx));
end
18. 已知矩阵 A ,完成以下操作
(1)在矩阵A木尾添加一行c=fix(5*rand(1,10));
(2)删除A的第2列、第3列和第5列;
(3)交换A的第5行、第9行。
编写函数返回操作后的矩阵A
编写本问题的函数文件前几行格式如下(函数名、文件名自己设定):
function r=myfun18
rand('seed',1229)
A=fix(20*rand(10,10));
c=fix(5*rand(1,10))
A=[A;c];
A(:,[2,3,5])=[];
A([5;9],:) = A([9;5],:);
r=A
end
19. 对于y=5v+2v+1,计算函数y在向量v所有点的函数值的最大值和平均值.编写函数依次返回 ymax,ymean。v由下列代码产生
function [ymax,ymean]=myfun
向量v由下列代码产生
rand(' seed', 1489)
v=fix(20*rand(1,20));
function [ymax,ymean]=myfun19
rand('seed',1489)
v=fix(20*rand(1,20))
syms x S
S=5.*x.^2+2.*x+1;
z=subs(S,x,v);
ymax=max(z);
ymean=mean(z);
ymax=double(ymax);
ymean=double(ymean);
end
20.已知矩阵A和矩阵B。将矩阵A的第3行、第4行和矩阵B的第2列、第4列的所有数值求和。编写函数返回该和值。产生矩阵A.B的代码参考下列代码。
编写本问题的函数文件前4行格式如下(函数名、文件名自己设定)
function r =.myfun
rand(' seed';2543)
A =rand (5,5);
B= rand(6,6);
function r=myfun20
rand('seed',2543)
A=rand(5,5);
B=rand(6,6);
a=A(3,:);
b=A(4,:);
c=B(:,2);
d=B(:,4);
r=sum(a,2)+sum(b,2)+sum(c)+sum(d)
end