matlab基础与应用部分习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业一
4、写出完成下列操作的命令。
(1)将矩阵 A 第2~5 行中第1,3,5 列元素赋给矩阵B。
>> M=[0:1:48];
>> A=reshape(M,7,7)
0 7 14 21 28 35 42
1 8 15 2
2 29 36 43
2 9 16 2
3 30 37 44
3 10 17 2
4 31 38 45
4 11 18 2
5 32 39 46
5 12 19 2
6 33 40 47
6 13 20 2
7 34 41 4
8 >> B=A(2:5,1:2:5)
B =
1 15 29
2 16 30
3 17 31
4 18 32
( 2)删除矩阵 A 的第七行元素。
>> A(7,:)=[]
A =
0 7 14 21 28 35 42
1 8 15 2
2 29 36 43
2 9 16 2
3 30 37 44
3 10 17 2
4 31 38 45
4 11 18 2
5 32 39 46
5 12 19 2
6 33 40 4
7 (3) 将矩阵A 的每个元素值加30。
>> A=A+30
A =
30 37 44 51 58 65 72
31 38 45 52 59 66 73
32 39 46 53 60 67 74
33 40 47 54 61 68 75
34 41 48 55 62 69 76
35 42 49 56 63 70 77
(4 求矩阵A 的大小和维素。
sizeA = size(A)
dA = ndims(A) sizeA = dA =
2
(5)将向量t的0元素用机器零来代替。
>> t=[1 2 3 4 0 5];
t =
1 2 3 4 0 5
>> find(t==0)
ans =
5
>> t(5)=eps
t =
1.0000
2.0000
3.0000
4.0000 0.0000
5.0000
(6)将含有12个元素的向量x 转换成3*4 矩阵。
>> x=[0:11]
x =
0 1 2 3 4 5 6 7 8 9 10 >>
11 y=reshape(x,3,4)
y =
0 3 6 9
1 4 7 10
2 5 8 11
7)求一个字符串的ASCII。
>> abs('a') ans =
97
( 8)求一个ASCII 所对应的字符。
>> char(99) ans = c
5、已知A[97 67 34 10
-78 75 65 5
32 5 -23 -59 0 = -12 54 7]
写出完成下列操作的命令。
(1) 取出A的前3列构成矩阵B,前两列构成矩阵C,右下角3*2子矩阵构成矩阵
B与C的乘积构成矩阵E。
>> B=A(1:3,:)
97 67 34 10
-78 75 65 5
32
5 -23
-59
>> C=A(:,1:2)
C =
97 67
-78 75
32 5
0 -12
>> D=A(2:4,3:4)
D =
D,
65 5
129 432 4197
-23 -59 54 >> E=B*C
3112
( 2) 输出【 50,100】围的全部元素。
>> find(A>=50 & A<=100)
ans =
1 5 6 10 12
>> output = [A(1) A(5) A(6) A(10) A(12)] output =
97 67 75 65 54 二、实验题
>> x = -74*pi/180;y=-27*pi/180; sin((x*x+y*y))/(sqrt(tan((abs(x+y))))+pi) ans =
0.1987 - 0.1434i >> a = -3.0:0.1:3.0,
exp(-0.3.*a).*sin(a+0.3) >> x=[2 4;-0.45 5];
0.5*log(x+sqrt(1+x.*x)) ans =
0.7218 1.0474 -0.2180 1.1562
>> A = [3 54 2;34 -45 7;87 90 15],
B = [1 -2 67;2 8 74;9 3 0] >> A*B
A.*B ans =
5271 11574 -11336
664
1978
作业二
1、 从键盘输入一个 4 位整数,按如下规则加密后输出。
加密规则: 每位数字都加上 7,然后用和除以 10 的余数取代该数字; 然后将 第 1 位数和第 3 位数交换,第 2 位数和第 4 位数交换。
M 文件名为: Untitled1.m
程序: x=input(' 输入一个四位整数: ');
y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)] z=mod((y+7),10)
x=z(3)*1000+z(4)*100+z(1)*10+z(2)
结果:输入一个四位整数: 1234
y = 1
2
3
4
3 -108 134
68 -360 518
783
270
>> A A
3
A.A 3
>> A/B
B\A
>> [A,B]
7 402 ans =
[A([1,3],:);BA2]
>> a=1+2i,b=3+4i,c=exp(pi/6*i)
c+a*b/(a+b)
-407 591 -1052 12489
8 9 0 1
x =
189
2、硅谷公司员工的工资计算方法如下。
(1)工作时数超过120h 者,超过部分加发15%。
(2)工作时数低于60h 者,扣发700元。
(3)其余按每小时84 元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资程序:gonghao二input('输入工号');
hour二input('输入工时');
every=84;
if hour>120
gongzi=every*120+1.15* every *(hour-120);
elseif hour<60
gongzi=every*hour-700;
else
gongzi=devery*hour;
end
format bank;
display([gonghao,gongzi])
1)结果:输入工号12
输入工时130
ans =
12.00 11046.00
(2)结果:输入工号12
输入工时56
ans =
12.00 4004.00
(3)结果:输入工号12
输入工时80
ans =
12.00 6720.00
2
3、根据g A A 4,求n的近似值。
当n分别取100、
6 1 2 3 n
1000、10000时,结果是多少?
要求:分别用循环结构和向量运算(使用sun函数)来实现。
(1)程序:(循环结构):
n=in put(' in put n:');
s=0;
for i=1: n
s=s+1/i A2;
pai= sqrt(s*6);
end display(pai)
input n :100 pai =
3.1321
(2)程序:(向量结构):
n=in put(' in put n:');
i=1: n;
pai= sqrt(sum(1./i42)*6);
display(pai);
结果:
input n:100
pai =
3.1321
4、根据y 1 1 1
2nS,求:
3 5
(1) y v 3时的最大n值;
(2) 与(1)的n值对应的y值
y=O;k=O;
while y<3
k=k+1; y=y+1/(2*k-1);
end
display([k-1,y-1/(2*k-1)])
结果:ans =
56.00
2.99
ans =
5、 考虑一下迭代公式:
其中,a 、b 为正的常数。
(1)编写程序求迭代的结果,迭代的终止条件为 |Xn1 Xn | 105,迭代初值xo
1.0,迭代次数不超过500次。
程序:x0=1.0; a=i nput('a 二'); b=i nput('b 二'); x= a/(b+x0); m=1;
while abs(x-x0)>1e-5 & m<500 x0=x; x=a/(b+x0); m=m+1; end
display([m,x]);
display([(-b+sqrt(b A 2+4*a))/2,(-b-sqrt(b A 2+4*a))/2]);
结果: a=5 b=5
X
n 1
b
X
n
7.0000 0.8541
ans =
ans =
0.8541
-5.8541
r~2
(2)如果迭代过程收敛于r ,那么r 的准确值是
2
当(a , b )的值取(1, 1)、(8,3 )、(10,0.1 )时,分别对 迭代结果和准确值进行比较。
a=1 b=1 ans =
13.0000 0.6180
ans =
0.6180 -1.6180 a=8 b=3 ans =
13.0000 1.7016 ans =
1.7016 -4.7016
a=10
7.0000 0.8541
b=0.1
ans =
3.1127 -3.2127
6、已知y 迪一
f (30) f(20)
(1)当f(n) n 10打(n25)时,y的值是多少?
程序:该题使用了function的调用。
函数文件f.m
fun cti on b=f(n);
b=n+10*log( nT+5);
结果:
y=f(40)/(f(30)+f(20))
y =
0.6390
(2)当f(n) 1 2 2 3 3 4 n (n 1)时,y的值是多少?
程序:函数文件fun.m
fun cti on f二fun(n)
f=sum([1: n].*([1: n]+1));
结果:
y=fu n(40)/(fu n(30)+fu n(20))
424.0000 3.1127
1.7662
1、绘制下列曲线。
作业三
(1) y 3
x X 3! (2)y
2
1 x
2 e
(3) 2 2 (4)x tsint
x 2y 64 y tcost
解:(1)程序:x=-5:0.001:5;
y=x-x八3/(3*2*1);
Plot(x,y);
(2)程序:x=-10:0.01:10;
y= exp(-x.*x/2)/(2*pi);
>> plot(x,y);
(3)程序:
f='x.A2+2*y.A2-64';ezplot(f,[-10,10,-10,10]);
ezplotCx.A2+2*y.A2-64',[-10,10,-10,10]);
(4)程序:t=0:0.1:8*pi;
>> x=t.*si n( t);
>> y=t.*cos(t);
>> plot(x,y);
已知y 2x 0.5和x警驚:丁 , 0 t ,完成下列操作:
y sin( 3t)s in(t)
(1)在同一坐标系下用不同的颜色和线型绘制两条曲线,
线添加文字说明;
给曲
解:程序:
1、绘制下列曲线。
x1=linspace(0,1,100);
>> y1=2*x1-0.5;
>> t=linspace(0,pi,100);
>> x=sin(3*t).*cos(t);
>> y=sin(3*t).*sin(t);
>> plot(x1,y1,'k:',x,y,'bp');
>> text(0.5,1,'y=2x-0.5');
>> text(-0.5,0.5,'x=sin(3t)cos(t)');
>> text(-0.5,0.4,'x=sin(3t)sin(t)');
( 2) 以子图形式,分别用条形图和散点图绘制两条曲线,并为各子图添加函数标题。
程序:
subplot(1,2,1);
bar(x1,'group');
title('y1=2x-0.5');
subplot(1,2,2);
barh(t,'stack');
title('stack');
subplot(1,2,1);
>> scatter(x1,y1,10);
>> title('y=2x-0.5');
>> scatter(x,y,10);
>> title('x=si n( 3t)cos(t),y=si n( 3t)cos(t)');
2、分别用plot和fplot函数绘制函数y sin1的曲线,分别分
x
析两条曲线的差别。
解:程序:
subplot(1,2,1);
x=1:1:100;
y=si n(1./x);
plot(x,y);
subplot(1,2,2);
>> fplot('si n(1/x)',[1,100]);
3、设y, t ,在同一图形窗口采用子图的形式
1e
绘制条形图、阶梯图、杆图和对数坐标图。
解:程序:t=-pi:0.01:pi;
>> y=1./(1+exp(-t));
>> bar(t,y);
>> subplot(2,2,2);
>> stairs(t,y);
>> subplot(2,2,3);
>> stem(t,y);
>> semilogy(t,y);
结果:
4、绘制下列极坐标图。
(1)5cos 4 (2) r a(1 cos ),
a 1, [0,2 ]
解:(1)程序:theta=linspace(-pi,pi,100);
ro=5.*cos(theta)+4;
polar(theta,ro);
(2)程序:fi=linspace(0,2*pi,100);a=1
r=a.*(1+cos(fi));
polar(fi,r);
6、绘制下列三维图线。
x e 20cost
t
(1) y e20sint,0 t 2
z t
解:(1)程序:t=0:pi/20:2*pi; x=exp(-t./20).*cos(t);
y=exp(-t./20).*s in (t);z=t; plot3(x,y,z);
结果:
x t
2 (2) y t ,0 t 1
3
z t
(3)程序:t=0:0.01:1;
x=t;y=t.A2; z=t.A3; plot3(x,y,z); 结果:
7、已知z
i2 2
10sin y
2,绘制其在x 30和y 30围的曲面图和等1x y
咼线
解:程
序:
x=-30:0.1:0;
y=0:0.1:30;
[x,y]=meshgrid(x,y);
z=10.*si n( sqrt(x.A2+y.A2))./sqrt(1+x.A2+y.A2);
meshc(x,y,z);
结果:
8、已知f (x, y) -------------- 5---- 2,x 3, y 3 ,绘制其曲面图,并将
1x2y
x 0.8, y 0.5部分镂空。
解:程序:x=li nspace(-3,3,100);
y=li nspace(-3,3,100);
[x y]=meshgrid(x,y);
fxy=-5./(1+x.A2+y.A2);
i=find(abs(x)<=0.8 & abs(y)<=0.5);
fxy(i)=NaN;
surf(x,y,fxy)
x 3usin
9、绘制y 2ucos 曲面图形,应用插值着色处理,并设置光照效 2 z 4u 果。
解:程序:u=linspace(1,0.1,100);
v=linspace(-pi,pi,1000);
[u,v]=meshgrid(u,v);
x=3.*u.*sin(v);y=2.*u.*cos(v);
z=4*u42;x=3*u.*si n(v);y=2*u.*cos(v);
z=4*u42;surf(x,y,z);
shading interp;
light('position',[1 ,1,1]);
10、设计一个蓝色球体沿正弦曲线运动的动画。
解:程序:t=0:pi/250:10*pi;
y=sin(t);
plot(t,y,'m');
h=line('color',[0,0,1],'marker','.','markersize',50);
for i=1:length(t);
set(h,'xdata',t(i),'ydata',y(i));
M(i)=getframe;
end
movie(M);
第四次作业
P103 思考题
5、写出完成下列操作的命令。
(1)建立 3 阶单位矩阵A。
A=eye(3)
A =
1 0 0
0 1 0
0 0 1
(2)建立5*6随机矩阵A,其元素为[100, 200]围的随机整数。
a=100;
b=200;
A=fix(a+(b-a)*rand(5,6))
A =
195 176 161 140 105 120
123 145 179 193 135 119
160 101 192 191 181 160
148 182 173 141 100 127
189 144 117 189 113 119 (3)产生均值为1、方差为0.2 的500个正态分布的随机数。
y=1+sqrt(0.2)*randn(25,20)
( 4)产生和A 同样大小的幺矩阵。
B=ones(size(A))
( 5)将矩阵A 的对角线的元素加30。
A=[1,2,3,4,5,6;5,6,2,1,3,5;7,8,9,4,5,6]
1 2 3 4 5 6
5 6 2 1 3 5
7 8 9 4 5 6
>> A=A+30*eye(size(A))
A =
31 2 3 4 5 6
5 3
6 2 1 3 5
8 39
( 6)从矩阵A 提取主对角线元素,并以这些元素构成对角阵 B
C=diag(diag(A))
C =
31 0 0
0 36 0
0 0 39
实验题:4、分别用矩阵求逆、左除运算符、矩阵分解等方法求下列对角方程组Ax b ,并分析程序的执行时间。
其中
A =
2 -1 0 0 0
-1 2 -1 0 0
0 -1 2 -1 0
0 0 -1 2 -1
0 0 0 -1 2
>> b=[1;0;0;0;0]
1
解
程序:
:
%矩阵求逆tic x1=inv(A)*b toc %左除运算tic x2=A\b toc %矩阵分
解%Q、R 分解tic [Q,R]=qr(A); x4=R\(Q\b) ;
toc
%L、U 分解
tic
[L,U]=lu(A);
x3=U\(L\b)
toc
%Cholesky 分解
tic
R=chol(A);
x5=R\(R'\b)
toc
结果:
P121 第五章实验题
1、利用,MATLAB 提供的rand 函数生成30000个符合均匀的随机
数,然后检验随机数的性质。
(1)均值和标准方差。
解:A=rand(1,30000);
>> mean(A)
std(A)
(2)最大元素和最小元素。
max(A) min(A)
(3)大于0.5的随机数个数占总数的百分比
size(fi nd(A>0.5))/size(A) ans =
0.499
2、在某处测的海洋不同深部处水温度数据如表。
用插值法求出水深500m 900m和1500m处的水温(C)。
解:程序:
m二[466,715,950,1422,1635];
w二[7.04,4.28,3.40,2.52,2.13];
h二[500,900,1500];
wi=i nterp1(没,w,h,'spli ne')
3、用5次多项式p (x)在区间【1,10】区间逼近函数Igx,并绘制
出lgx和p (x)在【1,101】区间的函数曲线。
解:
x=1:0.1:101;
y=log(x);
f=polyfit(x,y,5);
yi=polyval(f,x);
plot(x,y,'bp',x,yi,'k-p')
4、已知x(t) et(t 0),取N=64,对t从0~5s采样,用fft作快速傅立叶变换,并绘制相应的振幅-- 频率图。
解:
N=64;
T=5;
t=linspace(0,T,N);
x=exp(-t);
dt=t(2)-t(1);
f=1/dt;
X=fft(x);
F=X(1:N/2+1);
f=f*(0:N/2)/N;
plot(f,abs(F),'r-+')
xlabel('Frequency')
ylabel('|F(k)|')
3
3 2
5、有3 个多项式P1(x) x3 2x2 7,P2(x) x 2,P3(x) x3 5x 1,试进行下列操作。
P(x) P1(x)P2 (x) P3(x)。
(1)求
解、程序:
p1=[1,2,0,7];
p2=[0,0,1,-2];
p3=[1,0,5,1];
p12=conv(p1,p2);
p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3]
结果:
p =
0 0 1 1 -4 12 -13
(2)求p (x)的根。
程序:roots(p) 结果:ans =
-3.4656
0.6128 + 1.6278i
0.6128 - 1.6278i
1.240
(3)设A矩阵,当以矩阵A的每一元素为自变量时,求P(x)的值, 当以矩阵A为自变量时,求P(x)的根。
程序:
A=[-1,4,3;2,1,5;0,5,6];
px=polyval(p,A) pxm=polyvalm(p,A)
-29 291 95 19
-3 697 -13
697
1427
pxm =
391
2084 3273
502
2693 4207
720
3775
5892
6、求非线性方程的数值解。
(1)、求3x sinx 1 0在x0 0附近的根。
解:程序: z=fzero('3*x-sin(x)+1',0)
x 2 y 2 9
x y 1
,初值
x 0
3, y 0
建立 fun.m 函数文件: function F=fun(X) x=X(1);
y=X(2);
F(1)=x*x+y*y-9;
F(2)=x+y-1; 在命令窗口输入:
x=fsolve(fun,[3,0]',optimset('Display','off'))
结果: px =
2)、
123
第7章符号与计算课后实验题
1、已知A= xyz求矩阵的秩、逆矩阵和行列式的值
321
(这里的A是符号矩阵)
解:程序及结果:A二sym('[1,2,3;x,y, z; 3,2,1]'); >> ran k(A) %矩阵秩的值
ans =
3
>> inv(A) %逆矩阵的值
ans =
[ 1/4*(y-2*z)/(-2*y+z+x), -1/4*(-2*z+3*y)/(-2*y+z+x)]
[ -1/4*(x-3*z)/(-2*y+z+x), 1/4*(-z+3*x)/(-2*y+z+x)]
[ 1/4*(2*x-3*y)/(-2*y+z+x), -1/4*(-y+2*x)/(-2*y+z+x)]
>> det(A) %矩阵的行列值
ans =
-8*y+4*z+4*x
2、求函数的符号导数。
(1) y x < x x 求y,y。
1/(-2*y+z+x), -2/(-2*y+z+x), 1/(-2*y+z+x),
解:程序及结果:
syms x;
>> y=sqrt( ‘x+sqrt(x+sqrt(x')));
>> diff(y) % 一阶导数
ans =
1/2/(x+(x+x A(1/2))A(1/2))A(1/2)*(1 + 1/2/(x+x A(1/2))A(1/2)*(1 +
1/2/x A(1/2) ))
>> diff(y,x,2) % 二阶导数
ans =
-1/4/(x+(x+xA(1/2))A(1/2))A(3/2)*(1 + 1/2/(x+xA(1/2)F(1/2)*(1 +
1/2/xA(1/2 ))F2+1/2/(x+(x+xA(1/2))A(1/2))A(1/2)*(-
1/4/(x+xA(1/2))A(3/2)*(1 + 1/2/xA (1/2))A2-1/8/(x+xA(1/2))A(1/2)/xA(3/2)) (2)已知f(x,y) sin(x2y)e,求吐。
dxdy
解:程序:syms x y;
>> fxy=si n( xA2*y)*exp(-xA2-y);
>> c=diff(diff(fxy,x),y)
结果:
-2*si n( xA2*y)*xA3*y*exp(-xA2-y)+2*cos(xA2*y)*x*exp(-xA2-y)-2*cos(x
A2*y)*x*y*exp(-xA2-y)-2*cos(xA2*y)*xA3*exp(-xA2-y)+2*si n( xA2*y)*x *exp(-xA2-y)
(1)解:程序:f=sym('1/(x A 4+1)');
>> s1=i nt ⑴
(2)解:程序:syms x t;
>> f 二sym('(-2*xA2+1)/(2*xA2-3*x+1)A2');
>> in t(f,cos(t),exp(2*t))
结果:
ans =
-(-2*exp(2*t)*cos(t)A2-exp(2*t)+cos(t)+2*exp(2*t)A2*cos(t))/(2*exp(2*t )-1)/(exp(2*t)-1)/(2*cos(t)-1)/(cos(t)-1)
4、求级数2
1 矿j 的和函数,并求
1 k 之
n 0(2n 1) (2x 1) n1(2n 1)(2x 1) 和。
解:程序:syms x n;
>> s 仁 symsum(2/((2* n+1)*(2*x+1)A(2* n+1)), n,0,i nf)
结果:
s1 =
1/(2*x+1)*(4*xA2+4*x+1)A(1/2)*log((1 + 1/(4*xA2+4*x+1)A(1/2))/(1-1/(4
3、求积分
(2)
2t
e cost
(2x 2 3x 1)
*x^2+4*x+1)八(1/2)))
s2二symsum(2/((2* n+1)*(2*x+1)A (2* n+1)), n,1,5)
s2 =
2/3/(2*x+1)A3+2/5/(2*x+1)A5+2/7/(2*x+1)A7+2/9/(2*x+1F9+2/11/(2*x + 1)A11
>> s=s1+s2
1/(2*x+1)*(4*xA2+4*x+1)A(1/2)*log((1 + 1/(4*xA2+4*x+1)A(1/2))/(1-1/(4 *xA2+4*x+1)A(1/2)))+2/3/(2*x+1)A3+2/5/(2*x+1)A5+2/7/(2*x+1)A7+2/9/ (2*x+1)A9+2/11/(2*x+1)A11
5、求函数在x X 。
的泰勒展开式。
(1)解:程序: sym ('x');
>> y=(exp(x)+exp(-x))/2;
>> taylor(y,x,5,0)
x x
(1)y e 2e ,x o 0,n 5 5x e sin (3x a
结果:
ans =
1 + 1/2*x A2+1/24*x A4
(2)解:程序:
>> syms a x
>> s=taylor(exp(-5*x)*si n(3*x+pi/3),5,a)
结果:
exp(-5*a)*si n(3*a+1/3*pi)+(3*exp(-5*a)*cos(3*a+1/3*pi)-5*exp(-5*a)* si n(3*a+1/3*pi))*(x-a)+(8*exp(-5*a)*si n(3*a+1/3*pi)-15*exp(-5*a)*cos (3*a+1/3*pi))*(x-a)A2+(33*exp(-5*a)*cos(3*a+1/3*pi)+5/3*exp(-5*a)*s in (3*a+1/3*pi))*(x-aF3+(-161/6*exp(-5*a)*si n(3*a+1/3*pi)-40*exp(-5*
a)*cos(3*a+1/3*pi))*(x-a)A4
6、求非线性方程的符号解。
ri2
(1) x3ax a 0 (2) X y 100 0
3x 5y 8 0
(1)解:程序:s=solve(sym('xA3+a*x+1=0'))
(2)解:程序:三种方法:
[x y]=solve(sym('sqrt(xA2+yA2)-100=0'),sym('3*x+5*y-8=0')) 结果:x =
12/17-10/17*21246八(1/2)
12/17+10/17*21246八(1/2)
y =
20/17+6/17*21246八(1/2)
20/17-6/17*21246八(1/2)
>> % 或者下面的方式也可以
>> s仁 sym('sqrt(x A2+y A2)-100=0');
>> s2=sym('3*x+5*y-8=0');
>> [x y]=solve(s1,s2)
结果:
x =
12/17-10/17*21246A(1/2)
12/17+10/17*21246A(1/2)
20/17+6/17*21246A(1/2)
20/17-6/17*21246八(1/2)
>> %也可以下面的这种方法
>> [x y]=solve('sqrt(x A2+y A2)-100=0,3*x+5*y-8=0','x','y')
结果:
12/17-10/17*21246A(1/2)
12/17+10/17*21246A(1/2) y =
20/17+6/17*21246A(1/2)
20/17-6/17*21246A(1/2)
7、求微分方程初值问题的符号解,并与数值解进行比较。
2
y y 1 L,y( 2) 5,y( 2) 5,t [ 2,7]
解:程序:(1)符号解:
[y1,y11]=dsolve('Dy二y1,Dy1+y=1-tA2/pi','y(-2)=5,y1(-2)=5','t') y二dsolve('D2y+y=1-tA2/pi','Dy(-2)=5,y (-2)=5','t')
(2)数值解:
建立fun.m 函数文件:
function yy=ztfun(t,y)
yy=[y ⑵;i-L2/pi-y(i)];
在命令窗口输入:[t,y]=ode45(ztfun,[-2,7],[-5;5]); t=linspace(-2,7,49)
y2=y
t =
Columns 1 through 10
-2.0000 -1.8125 -1.6250 -1.4375 -1.2500
-0.8750 -0.6875 -0.5000 -0.3125
Columns 11 through 20
-0.1250 0.0625 0.2500 0.4375 0.6250 1.0000 1.1875 1.3750 1.5625
Columns 21 through 30
1.7500 1.9375
2.1250 2.3125 2.5000 -1.0625 0.8125 2.6875
2.8750
3.0625 3.2500 3.4375
Columns 31 through 40
3.6250 3.8125
4.0000 4.1875 4.3750
4.7500 4.9375
5.1250 5.3125
Columns 41 through 49
5.5000 5.6875 5.8750
6.0625 6.2500
6.6250 6.8125
7.0000 y2 =
-5.0000 5.0000
-4.7429 5.2326
-4.4744 5.4552
-4.1950 5.6671
-3.9052 5.8676
-2.5645 6.5847
-1.0971 7.04544.5625 6.4375
0.4390 7.2213
1.9815 7.0995
3.4830 6.6744
4.8595
5.9576
6.0496 4.9751
7.0015 3.7674
7.6575 2.4289
8.0186 0.9794 8.0662 -0.5230 7.7969 -2.0183 7.2495 -3.3906 6.4356 -4.6499 5.3817 -5.7495 4.1249 -6.6508 2.6823 -7.3337 1.1263 -7.7551 -0.4882 -7.9017 -2.1049 -7.7739 -3.6893 -7.3772 -5.1643 -6.7331 -6.4809 -5.8743 -7.6000 -4.8443
-8.5192 -3.6525
-9.1727 -2.3935
-9.5515 -1.1320
-9.6635 0.0677
-9.5314 1.1402
-9.1874 2.0336
-8.6744 2.6998
-8.0455 3.1031
-7.4661 3.2212
-6.8850 3.1245
-6.3415 2.8119
-5.8739 2.2903
-5.4781 1.4547
-5.2812 0.3934
-5.3273 -0.8538
-5.6486 -2.2384
-5.9678 -3.0774
-6.3889 -3.9328
-6.9134 -4.7936
-7.5410 -5.6484
8、求一阶微分方程组的特解。
x 3x 4y x y 3x
4x 4y 3y ,x(0) 0, y(0) 1 解:程序: [x,y]=dsolve('Dx=3*x+4*y,Dy=-4*x+3*y','x(0)=0,y(0)=1')。