MATLAB选修课讲义八讲_第1页
MATLAB选修课讲义八讲_第2页
MATLAB选修课讲义八讲_第3页
MATLAB选修课讲义八讲_第4页
MATLAB选修课讲义八讲_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB选修课讲义第一讲:矩阵运算第二讲:函数作图第三讲:符号演算第四讲:简单编程第五讲:数值计算第六讲:线性代数第七讲:综合实例第一讲:矩阵运算1 基本操作启动 退出 终止(Alt+. 或Ctrl +C) 翻页 召回命令 分隔符 , 禁显符 ; 续行符 注释符 设置显示格式 format 常用:short, short g, long清除变量 clear关闭图形 close清除图形 clf演示 Demo帮助 help2 基本常数pi I j inf eps NaN exp(1) 3 算术运算+ - * /, , sqrt .* ./ . 4 内部函数(一般都有数组运算功能)sin(x)

2、tan(x) asin(x) atan(x)abs(x) round(x) floor(x) ceil(x) log(x) log10(x) length(v) size(A)sign(x) y, p=sort(x)5 矩阵运算(要熟练掌握)(1) 矩阵生成: 手工输入: 1 2 3; 4 5 6; 1:2:10输入数组: linspace(a, b, n) 命令输入: zeros(m,n) ones(m,n) eye(n) magic(n) rand(m, n)diag(A) diag ( a11 a22 . . . ann ) (2) 矩阵操作赋值 A(i, j) =2 A(2, :)=1

3、 2 3 删除 A( 2,3, :)= 添加A(6,8)=5定位 find(A>0) 定位赋值A(A<0)= -1 由旧得新 B=A(2,3,1, :) B=A(1,3,2,1) 矩阵拼接 C=A, B C=A; B定位矩阵 B=(A>1) B=(A=1)下三角阵 tril(A) 上三角阵 triu(A)左右翻转 fliplr(A) 上下翻转 flipud(A) 重排矩阵 reshape(A, m, n)(3) 矩阵运算: 转置 A 和A+B 差 A-B 积A*B 左除Ab(=A-1 b) 右除b/A(=b A-1 ) 幂 Ak 点乘A.*B 点除A./B 点幂A.2 行列式

4、det(A) 数量积dot(a,b) 向量积cross(a,b) 行最简形rref(A) 逆矩阵inv(A) 迹trace(A) 矩阵秩 rank(A) 特征值eig(A) 基础解系null(A,r) 方程组特解x=Ab注意:2A, sin(A)练习一:矩阵操作1、用尽可能简单的方法生成下列矩阵: 2、设有分块矩阵,其中是单位矩阵,是零矩阵,是随机矩阵,是2阶全1矩阵,验证。3、求下列线性方程组的通解: Ax=b, A=1 2 1 -2;2 3 0 -1;1 -1 -5 7; b=4 9 7;4、求矩阵B=1 -2 3;3 -1 5;2 1 -2的特征值和特征向量.解1(1) A=zeros(

5、10)+10*diag(1:10)-2*tril(ones(10),-1)(2) A=10*diag(1:5); B=diag(2 4 6 8); B=zeros(4,1),B; B=B;zeros(1,5) C=diag(1 3 5 7); C=C,zeros(4,1); C=zeros(1,5);C; A=A+B-C(3) A=diag(1:10);B=ones(10,11);C=A*B;A=reshape(C,11,10);A(11,:)=(4) A=ones(10,1)*(1:10);B=(0:9)'*ones(1,10);C=1./(A+B); format rat; C2.

6、 E3=eye(3);R=rand(3,2);O=zeros(2,3);S=0 1;1 0;J=ones(2);E2=eye(2);A=E3,R;O,S;B=E3,R*J;O,E2;A2-B3. A=1 2 1 -2;2 3 0 -1;1 -1 -5 7,b=4 9 7',rank(A,b)-rank(A)=0y=null(A,'r');x=Ab;syms c1 c2; x=x+c1*y(:,1)=c2*y(:,2)4. B=1 -2 3;3 -1 5;2 1 -2 ,u,v=eig(B) 特征值 1.1991 + 1.7634i 1.1991 - 1.7634i -4

7、.3981 特征向量 -0.0604 - 0.3963i -0.0604 + 0.3963i -0.5550 -0.8495 -0.8495 -0.4944 -0.3374 - 0.0618i -0.3374 + 0.0618i 0.6690 第二讲:函数作图1、 画曲线 平面曲线 (1)描点作图x=1:0.2:6; y=x.*sin(x); 必须用点运算产生数组plot(x,y,ro, x, x.*x, b: ) 横坐标、纵坐标点数必须相等 figure 打开一幅画面subplot(1,2,1) 大画面中划分几个小画面(2) 函数作图fplot('tan(x),sin(x),cos(

8、x)',-6 6 -6 6)subplot(2,2,4), fplot('sin(1 ./ x)', 0.01 0.1, 1e-3)(3) 符号作图显函数 ezplot('cos(x)', 0, 2*pi) 隐函数 ezplot('1/y-log(y)+log(-1+y)+x - 1')参数式 ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',0, pi) 空间曲线(1) 描点作图t=linspace(0,4 *pi, 40); x=cos(t); y=t.*sin(t)

9、; z=2*t; plot3(x,y,z)(2) 符号作图参数式 ezplot3('cos(t)', 't * sin(t)', 'sqrt(t)', 0,6*pi)2、画曲面 x=-8:0.1:8; y=x; X,Y=meshgrid(x,y); z=X.2/16-Y.2/9; mesh(x,y,z); surf(x,y,z)ezmesh( 'x*exp(-x2 - y2)' )ezsurf( 'exp(-s)*cos(t)', 'exp(-s)*sin(t)', 't', 0,8

10、,0,4*pi )3、 动画getframe 抓拍画面 movie 播放画面例:旋轮线的生成clear; clf;t=linspace(0,2*pi,96);x=t-sin(t); y=1-cos(t);plot(x,y,'r', -1.1, 2*pi+1.1,0,0, 'k',0,0, -1, 3, 'k');axis equal; pausefor k=1:96 plot(x(1:k), y(1:k),'r', -1.1,2*pi+1.1,0,0,'k', 0,0,-1,3,'k');text(

11、2.7,3.3,'Cycloid'); axis equal; hold on; plot(t(k)+cos(t),1+sin(t),'b', x(k),y(k),'k.', t(k),x(k),1,y(k),'b'); m(k)=getframe; hold offendmovie(m,0) 练习二:函数作图1、 画出下列函数表示的曲线:(1) (使用plot和fplot两种方法),相应于的曲线上的点用红色空心圆点标出(2) 三条曲线画在一幅图上:,每条曲线加注标记区分;(3) 空间曲线 ;(4) 椭圆 (使用两种方法)。2、画

12、出下列曲面图形(1) 旋转抛物面 ;(2) 曲面 ;(3) 一幅图上同时画上半球面与柱面;(4) * 试画曲面,这是什么曲面?解答:1(1)x=-2:0.1:2;y=x.2.*sin(x.2-x-2);plot(x,y); hold onx1=-2:0.5:2y1=x1.2.*sin(x1.2-x1-2);plot(x1,y1,'ro')hold offfigurefplot('x2*sin(x2-x-2)',-2,2)hold onplot(x1,y1,'ro')hold off1(2)x=linspace(0,pi,50);y1=sin(x)

13、;y2=sin(x).*sin(3*x);y3=-sin(x);plot(x,y1,x,y2,x,y3)legend('sin(x)','sin(x)sn(3x)','-sin(x)')1(3)ezplot3('sin(t)','cos(t)','cos(2*t)',0,2*pi)1(4)t=linspace(0,2*pi,50);x=2*cos(t);y=3*sin(t);plot(x,y);axis equal; axis(-4,4,-3.5,3.5)ezplot('2*cos(t)&#

14、39;,'3*sin(t)',0,2*pi);axis equal;ezplot('x2/4+y2/9-1'),axis equal; axis(-4,4,-3.5,3.5)2(1)ezmesh('x2+y2',-3,3,-3,3)(2)ezmesh('x4+3*x2+y2-2*x-2*y-2*x2*y+6',-3,3,-2,13)(3)ezmesh('1+cos(t)','sin(t)','z',0,2*pi,0,2);axis equal; hold onezmesh('

15、2*sin(s)*cos(t)','2*sin(s)*sin(t)','2*cos(s)',0,pi/2,0,2*pi)hold offezsurf('cos(t)','-1+sin(t)','z',0,2*pi,0,2);axis equal; hold onezsurf('2*sin(s)*cos(t)','2*sin(s)*sin(t)','2*cos(s)',0,pi/2,0,2*pi)hold off<viviani> h1=ezsurf

16、('1+cos(t)','sin(t)','u',0,2*pi,0,2);hold on; axis equal; axis(-2,2,-2,2,0,2);axis off;h2=ezsurf('2*sin(s)*cos(t)','2*sin(s)*sin(t)','2*cos(s)',0,pi/2,0,2*pi);hold offview(130,10)light('position',2,1,2);lighting phongshading interp; camlight(-2

17、20,-170)set(h2,'facecolor',0,0.8,0)set(h1,'facecolor',1,0,0)(4)ezmesh('3*cos(t)+u*cos(t/2)','3*sin(t)','u*sin(t/2)',0,2*pi,-1,1);axis(-4 4 -4 4 -3 3) % 单侧曲面(如Mobius曲面)hold on t=linspace(0,2*pi,60);x=3*cos(t)+cos(t/2);y=3*sin(t);z=sin(t/2);x1=3*cos(t)-cos(t/2);

18、y1=3*sin(t);z1=-sin(t/2);plot3(x,y,z,'k','linewidth',3)plot3(x1,y1,z1,'k','linewidth',3)hold off ezplot3('3*cos(t)+cos(t/2)','3*sin(t)','sin(t/2)',0,2*pi);hold onezplot3('3*cos(t)-cos(t/2)','3*sin(t)','-sin(t/2)',0,2*pi)

19、第三讲:符号演算符号演算: 1、定义符号变量 syms a b c x y2、极限 limit(f,x,0)3、导数、偏导数 diff(f,x,n)4、不定积分、定积分 int(f,x) int(f,a,b)5、级数展开 taylor(f,n,x,x0)6、求和 symsum(f,k,1,n)7、方程求根 x=solve(f)8、微分方程求解 dsolve(eqn,x)9、代入 subs(f,x,a)10、化简 simplify simple11、优美格式 pretty(f)12、显示数据 vpa(x,n)练习三:符号运算用MATLAB符号运算做下列各题1、 求极限 ,2、 求和 ,3、 求导

20、数并化简、求偏导数 4、 求不定积分 ,5、 求定积分 ,含参积分6、 试求正弦函数的次麦克劳林展开式,在同一幅图上画出正弦函 数以及它的次麦克劳林多项式的图像,观察逼近情况。7、 试求方程或方程组的解:(1) ; (2) 8、 试解常微分方程:(1) (2) (3),是的函数。参考解答:syms x y a b h k n;1、L=limit(log(x+h)-log(x)/h,h,0)L = 1/xM =limit(1-a/n)n,n,inf)M = exp(-a)P = limit(diff(exp(1)-(1+x)(1/x),x,0)P = 1/2*exp(1)2、symsum(k2,

21、k,1,n)ans = 1/3*(n+1)3-1/2*(n+1)2+1/6*n+1/6symsum(1/k2,k,1,inf)ans = 1/6*pi2symsum(xn/n/(n-1),n,2,inf)ans = -(x-1)*log(1-x)+x3、y=log(x+sqrt(a2+x2); simplify(diff(y,5)ans = 3*(8*x4-24*x2*a2+3*a4)/(a2+x2)(9/2)w=sin(x2*y*z); dw=diff(w,x,2); ddw=diff(dw,y); subs(ddw,x,y,z,1,1,3)ans = 88.27844、I=int(x2+1

22、)/(x2-2*x+2)2,x)I = 1/4*(2*x-6)/(x2-2*x+2)+3/2*atan(x-1)J=int(1/x/(sqrt(a+log(x)+sqrt(b+log(x),x)J = 2/3/(b-a)*(b+log(x)(3/2)-2/3/(b-a)*(a+log(x)(3/2)5、I= int(exp(-x2),'x',0,+inf)I = 1/2*pi(1/2)K=int(x-y)3*sin(x+2*y),'y',-x,x)K = 3/8*sin(3*x)+4*x3*cos(x)-3*x2*sin(x)-3/2*cos(x)*x+3/8*

23、sin(x)K=int(x-y)3*sin(x+2*y),'y',0,x)K = (x-log(x+(a2+x2)(1/2)3*sin(x+2*log(x+(a2+x2)(1/2)*x6、y=sin(x)p3=taylor(y,3), p5=taylor(y,5)%p3=x %p5 = x-1/6*x3p7=taylor(y,7), p9=taylor(y,9)%p7= x-1/6*x3+1/120*x5 %p9 = x-1/6*x3+1/120*x5-1/5040*x7p11=taylor(y,11)%p11 = x-1/6*x3+1/120*x5-1/5040*x7+1/3

24、62880*x9ezplot(y);axis(-6,6,-6,6);hold on;x=-1:0.02:5;y=sin(x);y3=subs(p3,'x',x);y5=subs(p5,'x',x);y7=subs(p7,'x',x);y9=subs(p9,'x',x);y11=subs(p11,'x',x);plot(x,y,x,y3,x,y5,x,y7,x,y9,x,y11);axis(-1,5,-10,10);hold onplot(-1,5,0,0,'k',0,0,-14,14,'k&

25、#39;)legend('sin(x)','n=3','n=5','n=7','n=9','n=11',2)7、(1) x=solve('4*x3-2*x2-3*x+1')x = 1 1/4*5(1/2)-1/4 -1/4-1/4*5(1/2) vpa(x,8)= 1 .30901700 -.80901700(2) u,v=solve('u2+v2=2*p*q','u-v=p+q') u = 1/2*q+1/2*p+1/2*i*(p-q) 1/2*q+

26、1/2*p-1/2*i*(p-q) v = -1/2*q-1/2*p+1/2*i*(p-q) -1/2*q-1/2*p-1/2*i*(p-q)8、(1) x=dsolve('Dx = x + sin(t)', 'x(pi/2) = 0')x = -1/2*cos(t)-1/2*sin(t)+1/2*exp(t)/(cosh(pi)+sinh(pi)(1/2)(2) y=dsolve('D2y = -a2*y', 'y(0) = 1', 'Dy(pi/a) = 0')y = cos(a*t)(3) s=dsolve(

27、'Dx = y', 'Dy = -x', 'x(0)=0', 'y(0)=1')s.x = sin(t)s.y = cos(t)更好:x,y=dsolve('Dx = y', 'Dy = -x', 'x(0)=0', 'y(0)=1')第四讲:简单编程一、M文件 脚本文件 语句(命令)汇集,不调用参数 函数文件 调用参数function z=wang1(x,y) z=x.3+y.3-3*x.*y二、定义函数 1内联函数:fun=inline(x.2.*sin(x*y)

28、,x,y) 简单2匿名函数:fun=(x,y) x.2.*sin(x*y) 可以带参数3M文件:function z=fun(x,y) 功能多 z= x.2.*sin(x*y)三、编程初步:三种结构(1) 顺序结构(2) 循环结构 for k=array commands end while expression commands 循环变量变化end (3) 分支结构 if expression commands else commands end课堂练习:编程1、生成以下矩阵(1) A=1:10;for k=2:10 A(k,:)=A(k-1,:)+1;A(k,12-k)=1;end(2)

29、A=2:11for k=2:10 A(k,:)=A(k-1,:)+1;endformat rat; A=1./A 2、“3N问题”猜想:对于任意大于1的正整数,若为偶数,则除以2,若为奇数,则乘以3再加1。将所得的数作同样处理,结果一定会出现1。请针对编写程序验证“3N问题”猜想。n=input('n= ')x=n;while n>1 if mod(n,2)=0 n=n/2; else n=3*n+1; end x=x,n;endx3 使用二分法求方程在(1, 2)中的根解 输入f=inline('x3-2*x-1','x')a=1;b=2

30、;e=1;while e>1e-6 c=(a+b)/2; if f(a)*f(c)<0 b=c; elseif f(a)*f(c)>0 a=c; else a=c;b=c; end e=b-a;endx=(a+b)/2结果 x =1.6180练习四 编程练习1、 设, 称由此生成的序列为斐波那契序列。试编程自动生成斐波那契序列直到,并验证斐波那契序列的如下性质:(1) ;(2) (3) (4) 注:可以利用累积求和命令cumsum以及数组运算a.x , x可以是向量。2、 现行的个人收入调节税是这样规定的:月收入不足2000元的免税;月收入达到和超过2000元的按累进税制纳税

31、:其中0500元部分按5缴税,5002000部分按10缴税,20005000按15缴税,500020000按20缴税。例如,某人月收入2200元,他应缴税500×51500×10200×152515030205(元)请编写一个程序,输入月收入就能输出应缴税金额。3、若一个三位整数各位数字的立方和等于该数本身,则称该数为水仙花数。编程找出全部水仙花数。4、是求满足的最大的数n。解答:1、 Fibonacci Numbersf=1 2;for k=3:20f(k)=f(k-2)+f(k-1);endf(1) y=cumsum(f)+1;c=;for k=1:18c=c

32、,y(k)-f(k+2)+1;endc(2) f1=f(1:2:20);y1=cumsum(f1);c=;for k=1:10 c=c,y1(k)-f(2*k)+1;endc(3) f2=f.*f; y2=cumsum(f2)+1; c=;for k=1:19c=c,y2(k)-f(k)*f(k+1);endc(4) a=(1+sqrt(5)/2;b=(1-sqrt(5)/2; n=1:20;f3=(a.(n+1)-b.(n+1)/sqrt(5);f3-ff4=sym(a.(n+1)-b.(n+1)/sqrt(5);f4-f2、Tax(1) x=input('income=')

33、y=0.*(x<2000)+(175+0.15*(x-2000).*(x>=2000 & x<5000)+(620+0.2*(x-5000).*(x>=5000)(2) x=input('income=')if x<2000 y=0elseif x>=2000 & x<5000 y=175+0.15*(x-2000)elseif x>=5000 % & x<=20000 y=620+0.2*(x-5000)end(3) x=input('income=')c=floor(x/1000)

34、;switch c case 0 1 y=0; case 2 3 4 y=175+0.15*(x-2000) otherwise y=620+0.2*(x-5000)end3、题:所谓“水仙花数”是这样一个三位正整数:它的各位数字的立方和恰好等于这个数。试求全部水仙花数。解for k=100:999 k1=floor(k/100); % 求k的百位数字 k2=floor(k-100*k1)/10); % 求k的十位数字 k3=k-100*k1-10*k2; % 求k的个位数字 if k=k13+k23+k33 disp(k) endend % 153 370 371 407% 求全部水仙花数s

35、=;for a=1:9 for b=0:9 for c=0:9 if a3+b3+c3=100*a+10*b+c s=s,100*a+10*b+c; end end endends4、k=1;s=1;while s<10k=k+1;s=s+1/k;endn=k-1 % n=123665、试求直线,它把由曲线和轴0, pi区间所围的封闭图形一分为二。解 输入a=0; b=pi; e=1; s=quad('x.*sin(x)',0,pi)while e>1e-4 c=(a+b)/2; s1=quad('x.*sin(x)',0,c);if s1<s

36、/2 a=c; else b=c; end; e=abs(s1-s/2);endc=(a+b)/2fplot('x*sin(x)',0,pi);hold onplot(c,c,0,c*sin(c), 'r ');hold off第五讲:数值计算一、方程(组)求根1用MATLAB命令roots(P) p=1 0 -3 2 只能求多项式函数零点x,f,h=fzero(fun,x0) 一元函数且在左右异号x,f,h=fsolve(fun,x0) 可以解多元方程组之根例1 求方程 sin(4x)=ln(x)的大于1的根。解 fplot('sin(4*x)-log

37、(x)',1,3); grid on;x=fzero('sin(4*x)-log(x)',1,2); % 1.7129x=fsolve('sin(4*x)-log(x)',2); % 2.1400例2 求方程组x2-y3=0, exp(-x)-y=0的解解 ezplot('x2-y3'); hold on; ezplot('exp(-x)-y'); f=inline('x(1)2-x(2)3,exp(-x(1)-x(2)','x') x,val,h=fsolve(f,1,1); % x=0.

38、4839 0.61642编程求解二分法:牛顿迭代: x(k+1)=x(k)-f(x(k)/f'(x(k)二、求极值1数组元素的最大最小max(X) min(X) 若X是矩阵,则按列分别求最大最小2一元函数区间内最小值 x, fval, h = fminbnd( fun, x1, x2 )例 计算下面函数在区间(0, 1)内的最小值。 解 x, fval, h = fminbnd( '(x3+cos(x)+x*log(x)/exp(x)', 0, 1)x = 0.5223fval = 0.39743多元函数在x0附近最小值x, fval, h = fminsearch(f

39、un, x0)x, fval, h=fminunc(fun, x0)例 求的最小值点和最小值解:x,fval=fminsearch('2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2',0,0)结果:x = 1.0016 0.8335 fval= -3.3241或在MATLAB编辑器中建立函数文件function f=myfun(x)f=2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2; x=fminsearch( 'myfun', 0, 0 ) 或 x=fminsearch( myfun, 0, 0

40、)三、数值积分1用MATLAB命令trapz(x,y) 梯形法quad('fun',a,b) 辛普生法quadl('fun',a,b) Newton-Cotes法dblquad(fun,a,b,c,d) 二重积分例 求 y=x*sin(x)与x轴0, pi围成封闭图形面积。解 x=linspace(0,pi,100); y=x.*sin(x); s1=trapz(x,y) s2=quad('x.*sin(x)',0,pi)s3=quadl('x.*sin(x)',0,pi)精确解 syms x; s=int(x*sin(x),0,

41、pi) 结果:s=pi2编程求解Tn=h*(y(1)+2*sum(y(2:n-1)+y(n)/2Sn=h*(y(1)+4*sum(y(2:2:n-1)+2*sum(y(3:2:n-2)+y(n)/3 四、微分方程数值解 t,x=ode23(fun,tspan, x0)t,x=ode45(fun,tspan, x0)例1 求解微分方程初值问题 符号解:y=dsolve('Dy=y-2*x/y/y','y(0)=1','x') % y = 1/3*(18+54*x+9*exp(3*x)(1/3)ezplot(y);hold on;数值解:f =inl

42、ine('y-2*x/y/y','x','y')x,y=ode45(f,0:0.2:6,1);plot(x,y,'ro-');hold off;例2 求解微分方程初值问题符号解: y=dsolve('D2y-2*Dy-3*y+5*sin(x)','y(0)=0','Dy(0)=1','x') % y = 1/8*exp(3*x)+3/8*exp(-x)-1/2*cos(x)+sin(x) ezplot(y,0,2); hold on 或 fplot(char(y),0

43、,2); hold on数值解 ff=(x,y) y(2);2*y(2)+3*y(1)-5*sin(x) x,y=ode45(ff, 0:0.2:2, 0;1); plot(x,y(:,1),'ro'); hold off 或 function f=weifen(x,y)f=y(2);2*y(2)+3*y(1)-5*sin(x);x,y=ode45(weifen 0:0.2:2, 0;1); plot(x,y(:,1),'ro'); hold off练习五 数值计算1、 (1) 求方程 的全部实根。(2) 求方程在中的根.(3) 画出两个椭圆的图形,并求它们所有

44、的交点坐标: 2、 (1) 求函数 在区间 中的所有极值。(2) 求函数在区域中所有的极值。(3) 求函数在圆周上的最值。3、 (1) 用trapz和quad命令求积分 和。(2) 试用Simpson法(见教材P33)编程求解(1)中积分(取)。(3) 求二重积分。4、(1) 求微分方程的解析解;(2) 求该方程的数值解,取步长; (3) 在同一幅图中用蓝线画出解析解,用红圈画出解析解。*5、(综合思考题)曲线在区间上与轴围成封闭图形。 (1) 求直线,它把图形一分为二,(2) 求直线,它把图形一分为二。解答:1(1)roots(4 -2 -3 1)ans = -0.8090 1.0000 0

45、.3090(2)fplot('x4-2x',-2,2);grid onfzero('x4-2x',-2,0)ans = -0.8613fzero('x4-2x',0,2)ans = 1.2396fsolve('x4-2x',-1)ans = -0.8613fsolve('x4-2x',1)ans = 1.2396(3)ezplot('(x-2)2+(y+2*x-3)2-5');grid on;hold onezpflot('18*(x-3)2+y2-36');hold off=inl

46、ine('(x(1)-2)2+(x(2)+2*x(1)-3)2-5,18*(x(1)-3)2+x(2)2-36','x')x=fsolve(f,1.8 -3)x= 1.7362 -2.6929x=fsolve(f,1.8 2)x= 1.6581 1.8936x=fsolve(f,3 -5)x= 3.4829 -5.6394x=fsolve(f,4 -4)x= 4.0287 -4.11712(1)fplot('x2*sin(x2-x-2',-2,2);grid onf=inline('x2*sin(x2-x-2)','x&#

47、39;)x,val,h=fminbnd(f,-1,-0.5)x = -0.7315 val = -0.3582 h = 1x,val,h=fminbnd(f,1.5,1.8)x = 1.5951 val = -2.2080 h = 1g=inline('-x2*sin(x2-x-2)','x')x,val,h=fminsearch(g,-1.5)x = -1.5326 val = -2.2364 h = 1x,val,h=fminsearch(g,0)x = 0 val = 0 h = 1(2)ezmesh('y3/9+3*x2*y+9*x2+y2+x*

48、y+9')ff=inline('x(2)3/9+3*x(1)2*x(2)+9*x(1)2+x(2)2+x(1)*x(2)+9','x')x,val,h=fminsearch(ff,0,0)x = 0 0 val = 9 h = 1x = -0.3333 -6.0000 val = -22.0000 h = 1(3) 3(1)x=0:0.01:1;y=exp(-x.*x/2)/sqrt(2*pi);s1=trapz(x,y)s1 = 0.3413 0.34134272963912s2=quad('exp(-x.*x/2)/sqrt(2*pi)

49、9;,0,1)s2 = 0.3413 0.34134474240660y=tan(x)./sqrt(x);y(1)=0;s3=trapz(x,y)s3 = 0.7966 0.79664305941292s4=quad('tan(x)./sqrt(x)',0,1)s4 = 0.7968 0.79682074966724(2)x=linspace(0,1,13);y=exp(-x.*x/2)/sqrt(2*pi);h=1/12;s=h*(y(1)+4*sum(y(2:2:12)+2*sum(y(3:2:11)+y(13)/3s = 0.3413 0.34134487604770(3

50、)vpa(int(int(sqrt(1+r.*r.*sin(t),r,0,1),t,0,2*pi) ?dblquad('sqrt(1+r.*r.*sin(t)',0,1,0,2*pi)ans = 6.187895894019254y=dsolve('Dy=x+y','y(0)=1','x')y = -x-1+2*exp(x)ezplot(y,0,1);hold onfun=inline('x+y','x','y')x,y=ode45(fun,0:0.1:1,1) 0 1.0000 0

51、.1000 1.1103 0.2000 1.2428 0.3000 1.3997 0.4000 1.5836 0.5000 1.7974 0.6000 2.0442 0.7000 2.3275 0.8000 2.6511 0.9000 3.0192 1.0000 3.4366plot(x,y,'ro')五、插值yi = interp1(x,y,xi, method) % 用指定的算法计算插值linear:分段线性插值(缺省方式)cubic:分段三次Hermite插值spline:三次样条函数插值yi=spline(x,y,xi) 三次样条函数插值pp=spline(x,y) 三

52、次样条插值函数 pp=csape(x,y,cond,values) 三次样条插值 not-a-knot非纽结条件 complete一阶条件 second 二阶条件 variational 自然条件 periodic 周期条件yi=ppval(pp,xi) 三次样条插值函数值六、拟合 p=polyfit(x,y,k) k次多项式拟合,p为降幂排列的多项式系数 yi=polyval(p,xi) 求插值函数在点xi除的值yic= lsqcurvefit(fun, c0, x, y) 最小二乘曲线拟合(数据外部输入)c= lsqnonlin(fun, c0) 最小二乘曲线拟合(数据内部输入)例1 “龙格现象” clffplot('exp(-x2)',-4,4);hold onx=-4:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论