MATLAB基础及其应用教程周开利邓春晖课后答案
Matlab编程与工程应用(第二版)习题解答(全)
![Matlab编程与工程应用(第二版)习题解答(全)](https://img.taocdn.com/s3/m/6cc1fe1653d380eb6294dd88d0d233d4b14e3fe1.png)
Matlab编程与工程应用〔第二版习题解答第一章:MATLAB简介1.>> myage = 25;>> myage = myage - 1;>> myage = myage + 2;2.>> myage = 25;>> myage = myage - 1;>> myage = myage + 2;3.>> namelengthmaxans =634.>> format bank>> 1/3ans =0.335.>> format rat>> 5/6 + 2/7ans =47/426.25 19 4.3333 9 97.>> pounds = 100;>> kilos = 2.2 * poundskilos =220.00008.>> R1 = 20; R2 = 30; R3 = 40;>> RT = <R1\1 + R2\1 + R3\1>\1RT =9.23089.>> ftemp = 90;>> ctemp = <ftemp - 32> * 5 / 9ctemp =32.222210. 略11.>> sind<90>ans =112.>> sita = 2 * pi / 3;>> r = 2;>> x = r * cos<sita>x =-1.0000>> y = r * sin<sita>y =1.732113.>> t = 100;V = 50;>> wcf = 35.7 + 0.6 * t - 35.7 + 0.16 * V + 0.43 * t * 0.16 * Vwcf =41214.Fix<3.5> = 3; Floor<3.5> = 3;Fix<3.4> = 3; Fix<-3.4> = -3;Fix<3.2> = 3; Floor<3.2> = 3;Fix<-3.2> = -3; Floor<-3.2> = -4;Fix<-3.2> = -3; Ceil<-3.2> = -3;15.Sqrt<19>3 ^ 1.2Tan<pi>16.Intmin<‘int32’>; intmax<‘int32’>; intmin<‘int64’>;intmax<‘int64’>;17.Realmin<‘double’>; Realmax<‘double’>;18.>> DblNum = 33.8;>> int32Num = int32<DblNum>int32Num =3419.>> A1 = rand;A2 = 20*rand;A3 = 30 * rand + 20;A4 = round<rand * 10>;A5 = round<rand * 11>; /A6 = round<rand * 50> + 50;>> A4 = randi<10>;>> A5 = randi<11>;>> A6 = randi<50> + 50;20. 略21.Double〔‘A’ < Double<‘a’>; 所以大写在前,小写在后;22.>> CharNum = 'xyz';>> CharNum = char<CharNum - 2>CharNum =vwx23.>> vec = [3 : 1 : 6]vec =3 4 5 6>> vec2 = [1.0000:0.5000:3.0000]vec2 =1.0000 1.50002.0000 2.50003.0000>> vec3 = [5 : -1 :2]vec3 =5 4 3 224.>> vec1 = linspace<4,8,3>vec1 =4 6 8>> vec2 = linspace<-3,-15,5>vec2 =-3 -6 -9 -12 -15>> vec3 = linspace<9,5,3>vec3 =9 7 525.>> vec = [1 : 1 : 10]vec =1 2 3 4 5 6 7 8 9 10 >> vec = linspace<1,10,10>vec =1 2 3 4 5 6 7 8 9 10 >> vec2 = [2:5:12]vec2 =2 7 12>> vec = linspace<2,12,3>vec =2 7 12>> myend = randi<4> + 8;>> vec1 = [1 : 3 : myend]vec1 =1 4 7 1027.>> vec = [-1:0.2:1]'vec =-1.0000-0.8000-0.6000-0.4000-0.20000.20000.40000.60000.80001.000028.>> vec = [0 : 1 : 15];>> n = [1 : 2 : numel<vec> - 1];>> vec2 = vec<n>vec2 =0 2 4 6 8 10 12 14 29.function [a b] = PI_CONT<x>%UNTITLED Summary of this function goes here% Detailed explanation goes heren =1 : 1 : fix<numel<x> / 2>;a = x<n>;n = 1+fix<numel<x>/2> : 1 : numel<x>;b = x<n>;endrem<numel<vec>,2>30.rand<2,3>10*rand<2,3>5 + round<15 * rand<2,3>>randint<2,3,[5 15]>31.rows = randi<5>;cols = randi<5>;y = zeros<rows,cols>;>> mat = [ 7 8 9 1012 10 8 6];>> A1 = mat<1,3>>> A2 = mat<2,:>>> A3 = mat<:,1:2>33.>> mymat = [2 3 4;5 6 7]>> mymat1 = fliplr<mymat>>> mymat2 = flipud<mymat>>> mymat3 = rot90<mymat>34.>> mymatzero = zeros<4,2>>> mymatzero<2,:> = [3,6]35.>> x = linspace<-pi,pi,20>;>> y = sin<x>;36.>> randmat = randint<3,5,[-5 5]> >> sign<randmat>37.>> randmat = randint<4,6,[-5 5]>;>> randmat2 = abs<randmat> 38.>> randmat = rand<3,5>>> randmat<3,:> = []39.>> vec = 1 : 1:1000;>> vec<end>>> vec<numel<vec>>>> [a b ] = size<vec>;>> vec<a * b>40.同上41.>> mat = zeros<3,5>;>> mat<:,:,1> = zeros<3,5>;>> mat<:,:,2> = zeros<3,5>; 42.>> myc = clock>> today = myc<1:3>>> now = myc<4:6>>> now = fix<now>第二章 MATLAB程序设计概述1.ri = 2; % Radius internalro = 4; % Radius outerV = 4 * pi / 3 * <ro ^ 3 - ri ^ 3> % calculate volume2.% Calculate Atomic Weight H2O2Weight_O = 15.9994;Weight_H = 1.0079;AtomicWeight = Weight_O * 2 + Weight_H * 2 % Calculate H2O2 Atomic Weight 3.fprintf<'Length of The character string is : %d\n',…length<input<'Please input character string :\n','s'>>>;4.NewNumber = input<'please input a Number :\n'>;fprintf<'Number with 2 decimal is :%0.2f\n',NewNumber>;5.>> vec = input<'Enter a matrix: '>Enter a matrix: [1:1:10;1:1:10]6.>> fprintf<'OUTPUT : %f\n',12345.6789>OUTPUT : 12345.678900>> fprintf<'OUTPUT : %10.4f\n',12345.6789>OUTPUT : 12345.6789>> fprintf<'OUTPUT : %10.2f\n',12345.6789>OUTPUT : 12345.68>> fprintf<'OUTPUT : %6.4f\n',12345.6789>OUTPUT : 12345.6789>> fprintf<'OUTPUT : %2.4f\n',12345.6789>OUTPUT : 12345.67897.>> fprintf<'OUTPUT : %d\n',12345>OUTPUT : 12345>> fprintf<'OUTPUT : %5d\n',12345>OUTPUT : 12345>> fprintf<'OUTPUT : %8d\n',12345>OUTPUT : 12345>> fprintf<'OUTPUT : %3d\n',12345>OUTPUT : 123458.>> x = 12.34;>> y = 4.56;>> fprintf<'x is %.3f\n',x>x is 12.340>> fprintf<'x is %0.0f\n',x>x is 12>> fprintf<'y is %0.1f\n',y>y is 4.6>> fprintf<'y is %0.1f !\n',y>y is 4.6 !9.% Calculate Area of the squarenessfprintf<'The Area of The Squareness is %.2f',…<input<'Please input the Length of the Squareness \n'>> …* <input<'Please input the Width of the Squareness \n'>>>;10.NewName = input<'What is your name? ','s'>;fprintf<'Wow,your name is %s!\n',NewName>;11.NewString = input<'Enter your string : ','s'>;fprintf<'Your String was : ''%s''\n',NewString>;12.WaterSpeed = input<'Enter the folw in m^3/s : '>;WaterSpeedft = 0.028 \ WaterSpeed;fprintf<'A flow rate of %.3f meters per sec \n',WaterSpeed>;fprintf<'is equivalent to %.3f feet per sec\n',WaterSpeedft>;13.IncomeY = input<'Input your income every year?'>;FoodCostY= [IncomeY * 8 / 100 IncomeY*10 / 100];FoodCostM = 12\FoodCostY;fprintf<'Food Cost in every year is %.2f - %.2f\n',FoodCostY<1>,FoodCostY<2>>; fprintf<'Food Cost in every Month is %.2f - %.2f\n',FoodCostM<1>,FoodCostM<2>>;14.Weight = input<'Please input the Weight of the plan \n'>Area = input<'Please input the area of the plan wing \n'>fprintf<'Charge of Plan Win is %.2f \n',Weight / Area>15.x = 10;y = 10;plot<x,y,'g+'>;16.clfx = -2 : 0.1 : 2;y = exp<x>;plot<x,y,'g'>;xlabel<'X'>;ylabel<'Y'>;legend<'Exp<x>'>;Title<'Exp Example'>;17.clfx = 1 : 5 : 100;y = sqrt<x>;plot<x,y,'go'>;hold on;bar<x,y>;18.clfy = randint<1,100,[0 100]>;x = 1 : 1 : length<y>;plot<x,y,'ro'>;hold onplot<x,y,'g+'>;figure<2>;plot<x,y,'k'>;figure<3>;bar<x,y>19.clfx = linspace<0,pi,10>;y = sin<x>;plot<x,y,'r'>;figure<2>;x = linspace<0,pi,100>;y = sin<x>;plot<x,y,'b'>;20.load TimeTemp.datx = TimeTemp<:,1>';y = TimeTemp<:,2>';plot<x,y>;Xlabel<'Height'>;Ylabel<'Temperature'>;Title<'Height - Temperature'>;legend<'TEMP'>21.>> randint<3,6,[50 100]>;>> save RandInt.bat ans -ascii;>> randint<2,6,[50 100]>>> save RandInt.bat randint -ascii –append >> load RandInt.bat>> RandInt22.>> load testtan.bat>> tan<testtan>23.>> load hightemp.dat>> hightemp<:,1> = hightemp<:,1> .+ 1900>> save y2ktemp.dat hightemp –ascii24.function [ fn ] = fn< x >%Calculate y as a function of xfn = x^3 - 4 * x^2 + sin<x>;end25.function [ mwh] = mwh_to_gj<x>%convers from MWh to GJmwh = 3.6 * x;end26.function [ output_args ] = miletometer< x >%Conver mile to meterMile = input<'mile per hours number :'>;meter = Mile * 5280 * 0.3048 / 3600;output_args = meter;fprintf<'Meter of the mile is : % .2f',meter>; end27.function [ Tn ] = Interest< p,i,n >%UNTITLED4 Summary of this function goes hereTn = p * <1 + i> * n;end28.略29.function [ V ] = SpeedConv<pi,ps>%UNTITLED4 Summary of this function goes hereV = 1.016 * sqrt<pi - ps>end30. function [ THR ] =Cal_rate<A>%UNTITLED4 Summary of this function goes hereTHR = <220 - A> * 0.6;end31.function [ nJ ] =STL_calc<n>%UNTITLED4 Summary of this function goes herenJ = sqrt<2 * pi * n> * <n / exp<1>>^n;end32.function [ output_args ] = costn< n >%UNTITLED5 Summary of this function goes hereoutput_args = 5 * n ^ 2 - 44 * n + 11;endn = input<'Enter the number of units :'>;Cn = costn<n>;fprintf<'The cost for 100 units will be $%.2f\n',Cn>;33.略〔仿造32题34.function [ V ] = oblong< length >%UNTITLED8 Summary of this function goes hereV = 1/12*sqrt<2>*length^3;endfprintf<'The volume of oblong is : %.2f\n ',oblong<input<'Enter the length of the oblong:\n'>>>35.function [ y ] = pickone< x >%pickone<x> returns a random element from vector xn = length<x>;y = x<randi<n>>;end36.function [ y ] = vecout< x >%UNTITLED11 Summary of this function goes herey = x : 1 : x+5;end37.b = input<'Enter the first side :'>;c = input<'Enter the second side :'>afa = input<'Enter the angle between them :'>y = sqrt<b^2 + c^2 - 2*b*c*cos<afa *<pi/180>>>;fprintf<'The third side is %.3f\n',y>;38.略39.load floatnums.datfloatnums = round<floatnums>;floatnums = floatnums';save intnums.datfloatnums-ascii;40.load costssales.datn = length<costssales<:,1>>;fprintf<'There were %d quarters in the file ',n>;n = 1 : 1 : n;costs = costssales<:,1>;sales = costssales<:,1>;plot<n,costs,'ko'>;hold onplot<n,sales,'b*'>;legend<'COSTS','SALES'>;xlabel<'COST'>;ylabel<'SALE'>;title<'COST-SALE'>;costssales = costssales'costssales = flipud<costssales>;save newfile.datcostssales-ascii;第三章选择语句2. if <input<'please Enter a x :\n','s'> ~= 'x'>disp<'sorry the char not x'>;end3. function y = Test3<x>if <x == 12>y = 1;elsey = x + 1;end;4. disp<'The program will calculate the volume of a pyramid'>;a = input<'Enter the length of the base :'>;c = input<'Is that i or c?','s'>;if< c == 'c'>a = a/2.54;end;b = input<'Enter the width of the base :','s'>;c = input<'Is that i or c?'>;if< c == 'c'>b = b/2.54;end;d = input<'Enter the length of the base :','s'>;c = input<'Is that i or c?'>;if< c == 'c'>d = d/2.54;end;fprintf<'The Volume of the Pyramid is %.3f cubic inches.',a * b * d / 3>;5.if<input<'Are you an engineer?<Y/N>','s'> == 'Y'>disp<'You are the best!'>;elsedisp<'oh~ soga'>;end;6.Fenzi = input<'Please input enter the FENZI: '>;Fenmu = input<'Please input enter the FENMU: '>;if<Fenmu == 0>disp<'Sorry The Fenmu can not be zero!'>;elsefprintf<'The result is %.2f.\n',Fenzi/Fenmu>;end;7.function Result = Test3_Func< a,b >%TEST3_FUNC Summary of this function goes here% Detailed explanation goes hereResult = sqrt<1 - b^2/a>;EndFunction:a = input<'Please Enter the a : '>;b = input<'Please Enter the b : '>;if <a == 0>disp<'Error 0001'>;elsefprintf<'The Result is %.2f \n',Test3_Func<a,b>>;end;8.a = input<'Please Enter the Shousuo : '>;b = input<'Please Enter the Shuzhang : '>;if <a<120 && b<80>disp<'you are the best choice !'>;elsedisp<'Sorry you can not do this!'>;end;9.A1 = input<'Enter the First Area: '>;A2 = input<'Enter the Second Area: '>;if<A1 > A2>disp<'UP!'>;elseif <A1 < A2>disp<'Down!'>;elsedisp<'Keep!'>;en10.a = input<'Enter the PH number : '>;if <a < 7>disp<'Suan'>;elseif <a > 7>disp<'Jian'>;elsedisp<'Zhong'>;end;11.function Result = Test3_Func< a,b >%TEST3_FUNC Summary of this function goes here % Detailed explanation goes hereif <a < b>Result = a : 1 : b;elseResult = a : -1 : b;end12.function Result = Test3_Func< x >%TEST3_FUNC Summary of this function goes here % Detailed explanation goes here[a b] = size<x>;if <<a ~= 1 && b ~= 1> || <a == 1 && b == 1>> Result = x;elseif<a == 1>Result = fliplr<x>;elseResult = flipud<x>;end13.letter = input<'Enter your answer :','s'>;if <letter == 'Y' || letter == 'y'>disp<'OK,continuing'>;elseif<letter == 'N' || letter == 'n'>disp<'OK,halting'>;elsedisp<'Error'>;end14.switch lettercase {'Y''y'}disp<'OK,contining'>case {'N''n'}disp<'OK,halting'>otherwisedisp<'Error'>end15.Mahe = input<'Enter the Speed of Plan : '>/input<'Enter the Speed of Voice: '>; if<Mahe > 1>disp<'supersonic speed'>;elseif<Mahe < 1>disp<'subsonic speed'>;elsedisp<'transonic speed'>;end;16.X = input<'Enter the temp in degrees C : \n'>;switch <input<'Do you want F or K?','s'>>case'F'fprintf<'The temp in degrees F is %.1f',<9/5>*X + 32>;case'K'fprintf<'The temp in degrees K is %.1f',X + 273.15>;otherwisedisp<'Enter Error!'>;end;17.%function y = Test3<x>X = randi<100>;if rem<X,2> == 0fprintf<'%d ÊÇżÊý\n',X>;elsefprintf<'%d ÊÇÆæÊý\n',X>;end18.function y = Test3<x>switch rem<x,4>case 0y = true;otherwisey =false;end;19.function y = Test3<innum>if innum == int32<innum>y = true;elsey =false;end;20.function y = Test3<a,b,c>if a^2 == b^2 + c^2y = true;elsey =false;end;21.Re = input<'Enter the Re Value :\n'>;if Re <= 2300 disp<'Laminar region'>;elseif Re > 2300 && Re <= 4000 disp<'Transition region'>; else disp<'Turbulent region'>;end;22.d1 = input<'Enter d1 : \n'>;d2 = input<'Enter d2 : \n'>;if d1 <= 0 || d2 <= 0disp<'Error!'>;elsefprintf<'%.2f',Test3_Func<d1,d2>>;end;function y = Test3_Func<a,b>y = a * b / 2;23.V = input<'Enter the speed of the wing: '>;if V <= 38 disp<'tropical depression '>;elseif V >= 73 disp<'typhoon'>;else disp<'revolving storm'>;end;24.V = input<'Enter the speed of the wing :'>;if V >74 && V <= 95disp<'1 : 4-5'>;elseif V > 95 && V <= 110disp<'2 : 6-8'>;elseif V > 110 && V <= 130disp<'3 : 9-12'>;elseif V > 130 && V <= 155disp<'4 : 13-18'>;elseif V > 155disp<'5 : 18'>;elsedisp<'Error'>;end25.略26.H = input<'Enter the hight of the cloude :'>;if H < 6500 && H > 0disp<'Low'>;elseif H >= 6500 && H < 20000disp<'Middle'>;elsedisp<'High'>;27.if letter == 'x'disp<'Hello'>;elseif letter == 'y'||letter == 'Y'disp<'Yes'>;elseif letter == 'Q'disp<'Quit'>;elsedisp<'Error'>;end;28.switch numcase {0 1 2}f2<num>;case {-2 -1}f3<num>;case 3f4<num>;otherwisef1<num>;end;29.switch menu<'menu','1.Cylinder','2.Circle','3.Rectangle'>case 1R = input<'Please enter the radius of buttom circle:'>;H = input<'Enter the height of the Cylinder:'>;A = 2 * pi * R * H + 2 * pi * <R ^ 2>;fprintf<'The area is %.2f',A>;case 2R = input<'Please enter the radius of circle:'>;A = pi * <R ^ 2>;fprintf<'The area is %.2f',A>;case 3a = input<'Please enter the long of Rectangle:'>;b = input<'Please enter the with of Rectangle :'>;A = a * b;fprintf<'The area is %.2f',A>;end30.同2931.同2932.x = input<'Enter the Value X :'>;Y = menu<'Menue Choose','Sin','Cos','Tan'>;switch Ycase 1output = sin<x>;case 2output = cos<x>;case 3output = tan<x>;end;33.略34.function output = Test3_Func<x>Y = menu<'Menue Choose','ceil','round','sign'>;switch Ycase 1output = ceil<x>;case 2output = round<x>;case 3output = sign<x>;end;35.略36.略37.略第四章循环1.>> for i = 1.5:0.2:3.1i = iend2.function output = Test3_Func<x>x = x - <rem<x,2> == 0>;output = 0;for i = 1 : 2 : xoutput = output + i;end;3.function output = Test3_Func<x>x = x - <rem<x,2> == 0>;output = 1;for i = 1 : 2 : xoutput = output * i;end;4.5.>> for i = 32 : 1 : 255char<i>end;6.>> vec = [5.5 11 3.45];>> for i = 1 : length<vec>fprintf<'Element %d is %.2f .\n',i,vec<i>>;end;7.n = randi<4> + 1;sum = 0;for i = 1 : nsum = sum + input<'Enter the value'>;end;fprintf<'Sum = %.1f\n',sum>;8disp<'Please enter the threshold below which samples will be considered to be invalid :'>;Value1 = input<'Considered to be invalid :\n'>;Value2 = input<'Please enter the number of data samples to be entered :\n'>; Sum = 0;num = 0;for i = 1:Value2data = input<'Please enter a data sample :'>;if data > Value1Sum = Sum + data;num = num + 1;endendif num == 0disp<'Data Error !'>;elsefprintf<'The average of the %d valid data samples is %.2f volts.',num,Sum/num>; end9.load MaxTemp.mat[a b] = size<MaxTemp>;for i = 1 : a;Matix1 = zeros<size<MaxTemp>>;Matix1<i,:> = MaxTemp<i,:>end10.sum = 0;for i = 1 : length<pipe>sum = sum + <pipe<i,1> < 2.1 || pipe<i,1> > 2.3>;sum = sum + <pipe<i,2> < 10.3 || pipe<i,2> > 10.4>;endfprintf<'There were %d rejects.\n',sum>;11.略12.略13.x = randint<1,5,[-10,10]>;x2 = 0;for i = 1 : length<x>x1<1,i> = x<1,i> - 3;if x1<1,i> > 0x2 = x2 + 1;end;x3<1,i> = abs<x1<1,i>>;if i > 1x4 = max<x1<1,i>,x1<1,i-1>>;end;end16.17.略18.19.20.略22.略23.略24.10略略第五章向量化代码1.Mat.*2;2.Result = vec;3.cumprod<vec>;4.>> vec = randint<1,6,[0 20]>;>> maxvec = max<vec>;>> minvec = min<vec>;>> cumsumvec = cumsum<vec>5.Sum<vec>6.>> clear>> vec = randint<1,5,[-10 10]>;>> vec_3 = vec - 3;>> ZhengshuNum = length<find<vec > 0>>;>> vec_abs = abs<vec>;>> vec_max = max<vec>;7.max<vec,[],1>max<vec,[],2>max<max<vec>>;8.function output = Test3_Func<r,n>vec = [];for i = 0 : nvec = [vec r.^i];end;output = sum<vec>;>> vec1 = Vec<[1 3 5]>;>> vec2 = Vec<[2 4 6]>;>> CheckSum = vec1.*vec2;11.>> vec = 1 : 1 : 1000;>> Result = sum<1./<vec.^2>>;>> Check = pi.^2/6;>> diff = check – result13.略14.略15.clear;clf;vec_temp = 0 : 0.5 : 10;x1 = input<'Enter the number of level :'>;while<all<vec_temp - x1>>x1 = input<'Enter the number of level :'>;end;disp<x1>16.略17.ticif x==21disp<x>end;tocticswitch xcase 21disp <x>;end;toc18.Ones<3>19.If find<r > 0> == [] && fin<h > 0> == 0V = pi .*<r.^2>*hEnd;第六章 MATLAB 程序1~20 略21.function S = Test3_Func<n>P = 10000;i = 0.05;vec = 1 : 1 : n;S = P * <<1 + i>.^vec>;plot<vec,S>;n = input<'Enter the Year:'>;while ~<n >0 && int32<n> == n>n = input<'Enter the Year:'>;end;Test3_Func<n>;22.Function lenf = lenprompt<>;Lenf = input<‘Enter the length By inches: ’>; Function Leni = covert_f_to_i<lenf>Leni = …<英尺转英寸>Function printlens<lenf,leni>Disp<lenf>;Disp<leni>;23.略24.。
Matlab编程与应用习题和一些参考答案
![Matlab编程与应用习题和一些参考答案](https://img.taocdn.com/s3/m/6c7717d7bed5b9f3f80f1c41.png)
Matlab编程与应用习题和一些参考答案Matlab 上机实验一、二3.求下列联立方程的解⎪⎪⎩⎪⎪⎨⎧=+-+-=-+=++-=--+41025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10];>> b=[4;4;9;4];>> c=a\b4.设⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡------=81272956313841A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。
>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];>> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];>> C1=A*B'>> C2=A'*B>> C3=A.*B>> inv(C1)>> inv(C2)>> inv(C3)5.设 ⎥⎦⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。
>> x=linspace(0,2*pi,101);>> y=cos(x)*(0.5+(1+x.^2)\3*sin(x));>> plot(x,y,'r')6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
(mean var )a=randn(8,6)mean(a)var(a)k=mean(a)k1=mean(k)i=ones(8,6)i1=i*k1i2=a-i1i3=i2.*i2g=mean(i3)g2=mean(g)10.利用帮助查找limit 函数的用法,并自己编写,验证几个函数极限的例子。
MATLAB语言基础与应用(第二版)第5章 习题答案
![MATLAB语言基础与应用(第二版)第5章 习题答案](https://img.taocdn.com/s3/m/1256382e4a7302768e9939c1.png)
第5章习题与答案5.1用矩阵三角分解方法解方程组123123123214453186920x x x x x x x x x +-=⎧⎪-+=⎨⎪+-=⎩ 解答:>>A=[2 1 -1;4 -1 3;6 9 -1] A =2 1 -1 4 -13 6 9 -1 >>b=[14 18 20]; b =14 18 20 >> [L, U, P]=lu(A) L =1.0000 0 0 0.6667 1.0000 0 0.3333 0.2857 1.0000 U =6.0000 9.0000 -1.0000 0 -7.0000 3.6667 0 0 -1.7143 P =0 0 1 0 1 0 1 0 0 >> y=backsub(L,P*b’) y =20.0000 4.6667 6.0000 >> x=backsub(U,y) x =6.5000 -2.5000 -3.5000 5.2 Cholesky 分解方法解方程组123121332352233127x x x x x x x ++=⎧⎪+=⎨⎪+=⎩ 解答:>> A=[3 2 3;2 2 0;3 0 12] A =3 2 32 2 03 0 12>> b=[5;3;7]b =537>> L=chol(A)L =1.7321 1.1547 1.73210 0.8165 -2.44950 0 1.7321>> y=backsub(L,b)y =-11.6871 15.7986 4.0415>> x=backsub(L',y)x =-6.7475 28.8917 49.93995.3解答:观察数据点图形>> x=0:0.5:2.5x =0 0.5000 1.0000 1.5000 2.0000 2.5000 >> y=[2.0 1.1 0.9 0.6 0.4 0.3]y =2.0000 1.1000 0.9000 0.6000 0.4000 0.3000 >> plot(x,y)图5.1 离散点分布示意图从图5.1观察数据点分布,用二次曲线拟合。
数学建模···牧羊人的希望(1)
![数学建模···牧羊人的希望(1)](https://img.taocdn.com/s3/m/14619f82bceb19e8b8f6bab9.png)
牧羊人的希望摘要牧羊人需要一种合理管理牧场的方法,本论文针对该问题,给出了一种合理有效的模型:最优化模型。
我们根据题目所给的已知条件,设出一些合理的变量,然后写出一系列的不等式方程组,再通过matlab矩阵的方法求出最优解,最后,在所求出的一系列解中选出最符合实际的一组。
我们总共选取了十种不同面积的牧场来计算,通过莫模拟计算和检验来确定不同规模的牧场所养羊数目的最优解。
一、问题分析问题一:他应该饲养多少只羊,首先饲养多少羊肯定要与他的牧场面积有关,我们不能超过牧场的承载量,另外我我们饲养的羊分为不同的年龄段,饲养多少只羊我们应该是所有羊的总和,不同年龄段的羊在不同的季节又表现为不同的数量,那我们应该怎么去算这个羊的总量呢?首先我们考虑到牧场的可持续发展,所以我们在秋天我们就要把羊卖掉一部分,而在冬天和春天我们又会对羊进行配种产生羊羔,补充卖掉的羊的数量,这样我们就能进行牧场的可持续发展了,所以我们只要算出春季末不同的年龄段的羊的总和最能体现牧场一年当中的饲养羊的总数。
问题二:夏季应存储多少干草用作冬季饲料?,要在夏季我们存储冬季的饲料,但首先我应该考虑的是在夏天我们的牧场总产生的草的数量是多少,他够不够羊群在夏天和冬天吃的数量,但考虑到春节的草的平均生长率是夏季的一半还要少,如果春节能够供养羊群,那么夏季的草量肯定能够我们羊群在夏季和冬季羊的吃的,并且我们冬季的羊的数量要比春节羊的数量少很多,因为我们要在秋季卖掉一部分羊。
所以我们暂且考虑我们夏季的草的数量能满足我们夏天和冬天羊群饲料的供养量。
问题三:为了繁殖,每年保留多大比例的母羊?首先我们要考虑到的是不同年龄段的母羊在吃相同的牧草的情况下所产的羊羔的数量是不同的,从题目给我们的图表可知,年龄在2~3岁的母羊年平均羊羔数最高,那我们是不是要把这个年龄段的母羊不卖而让他来进行繁殖呢?当然不是,因为我们要考虑到我们牧场的可持续发展,我们的羊每年的变化,羊的年龄在慢慢的递增,所以我们暂且不知道卖哪些年龄段的羊,我们只能设每个年龄段的羊我们都卖,这样我们求出来的结果来判断哪个年龄段的羊卖多少。
MATLAB基础及其应用教程-周开利-邓春晖课后答案,第三章
![MATLAB基础及其应用教程-周开利-邓春晖课后答案,第三章](https://img.taocdn.com/s3/m/d370903b5727a5e9856a6144.png)
第三章习题答案1.代码:a=[1 -1 -1]; roots(a)结果:ans =-0.61801.61802.代码:x=0:10;y=sin(x);xi=0:0.15:10; %选取了67个插值点,要增加n,只需减小步长即可y0=sin(xi); %算精确值y1=interp1(x,y,xi); %分段线性插值y2=interp1(x,y,xi,'spline'); %三次样条插值plot(xi,y0,'o',xi,y1,xi,y2,'-.')legend('精确值','分段线性插值','三次样条插值')结果:3.理论公式为:p=1.0332*exp(-(x+500)/7756),所以拟合模型可写为:p=a*exp(-k*x+b) 式中,a, k, b为常数,两边同时取自然对数,得:log(p)=-k*x+b+log(a)问题转化为线性模型。
注意:自然对数是log(x), 以10为底的对数是log10(x)代码:clear;x=[0 300 600 1000 1500 2000];p=[0.9689 0.9322 0.8969 0.8519 0.7989 0.7491];lnp=log(p); %转化为 p 的自然对数值,模型转化为线性模型pk=polyfit(x,lnp,1); % 线性拟合,得到模型的斜率pk(1)和常数pk(2) 模型为: p=exp(pk(1)*x)*exp(pk(2))xi=0:50:2000;p0=1.0332*exp(-(xi+500)/7756); %理论值p1=exp(pk(1)*xi+pk(2)); %拟合模型值p2=interp1(x,p,xi,'spline'); %三次样条插值plot(x,p,'p',xi,p0,xi,p1,'--',xi,p2,'-.');legend('测量值','理论值','拟合值','三次样条值');format long % 数据显示格式为15位有效数字x2=0:200:2000 % 取10个点,比较差异pp1=1.0332*exp(-(x2+500)/7756) %理论值pp2=exp(pk(1)*x2+pk(2)) % 拟合值pp3=interp1(x,p,x2,'spline') % 样条插值err1=sum(abs(pp2-pp1).^2) % 拟合值的误差绝对值总和err2=sum(abs(pp3-pp1).^2) % 样条值的误差绝对值总和结果:0200400600800100012001400160018002000从图像上,都符合得很好,但很难看出差异。
Matlab编程与应用习题和一些参考答案
![Matlab编程与应用习题和一些参考答案](https://img.taocdn.com/s3/m/7ac6bf4319e8b8f67c1cb9ed.png)
n=rand(1,10) for j=1:10
for i=j+1:10 if n(j)<n(i) a=n(j); n(j)=n(i); n(i)=a; end
end end disp('重新排列后:') n
9.建立一个字符串向量,然后对该向量做如下处理: (1) 取第 1~5 个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 统计字符串中小写字母的个数。
>> a='abcdef123456'; >> subch=a(1:5) subch = abcde >> revch=a(end:-1:1) revch = 654321fedcba>> k=find(a>='a'&a<='z'); >> a(k)=a(k)-('a'-'A'); >> char(a)
>> z=0:0.01:10;
>> x=z.*sin(3*z);
>> y=z.*cos(3*z);
>> plot3(x,y,z)
12.设 z x e2 (x2 y2 ) ,画出定义域 x=[-2,2],y=[-2,2]内的曲面图。
>> [x,y]=meshgrid([-2:0.1:2]); >> z=x.^2.*exp(-x.^2-y.^2); >> mesh(x,y,z) 13.设 z=0.05x-0.05y+0.1; 画出 z 的曲面(平面)图。 >> [X,Y]=meshgrid(1:10:200,1:10:200); >> Z=0.05*X-0.05*Y+0.1; >> surf(X,Y,Z)
matlab基础与应用教程课后答案
![matlab基础与应用教程课后答案](https://img.taocdn.com/s3/m/6ceef4d5c1c708a1284a448e.png)
x=3*exp(-t); % 求各采样点样本值x
dt=t(2)-t(1); f=1/dt;
% 采样周期 % 采样频率(Hz)
X=fft(x);
% 计算x的快速傅立叶变换X
F=X(1:N/2+1); f=f*(0:N/2)/N;
% F(k)=X(k)(k=1:N/2+1) % 使频率轴f从零开始
plot(f,abs(F),'-*')
(2)A(7)=[]
(3) A=A+30
(4)size(A)
(5) t(find(t==0))=eps
(6)tபைடு நூலகம்reshape(x,3,4)
(7)abs('matlab')
(8)char(93)
5. A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7]
8. x=linspace(-3,3,100);y=linspace(-3,3,100); [x y]=meshgrid(x,y); fxy=-5./(1+x.^2+y.^2); i=find(abs(x)<=0.8 & abs(y)<=0.5);
fxy(i)=NaN; surf(x,y,fxy) 9. u=linspace(1,10,100);v=linspace(-pi,pi,100); [u,v]=meshgrid(u,v); x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.^2; x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.^2; surf(x,y,z);shading interp; light('position',[1,0,1]); 10.
MATLAB及其应用课后习题解答
![MATLAB及其应用课后习题解答](https://img.taocdn.com/s3/m/4a0f9f35482fb4daa58d4b6e.png)
5
“MATLAB 及其应用”课程作业
图 4- 2 画出函数图像
第5章
1. 已知椭圆的长、短轴 a 4, b 2 ,用“小红点线”画如下图所示的椭圆
x a cos t 。 y b sin t
(提示:参量 t ;点的大小;axis equal) 答 : 运 行 :clf; a=4;b=2;t=0:pi/80:2*pi;x=a*cos(t);y=b*sin(t);plot(x,y,’r’,’markersize’,15);axis equal;xlabel(‘x’);ylabel(‘y’);shg;结果如图 5-1 所示:
1
“MATLAB 及其应用”课程作业
a5=sin(sym(pi/4)+exp(sym(0.7+pi/3))); a6=sin(sym(pi/4)+sym(exp(0.7+pi/3))); a7=sin(sym(pi/4+exp(0.7+pi/3))); a8=sym(sin(pi/4+exp(0.7+pi/3))); da2 = vpa(a1-a2,30) da3 = vpa(a1-a3,30) da4 = vpa(a1-a4,30) da5 = vpa(a1-a5,30) da6 = vpa(a1-a6,30) da7 = vpa(a1-a7,30) da8 = vpa(a1-a8,30) 结果如图 2-2 所示: 只有 a2 是精准的,观察可知,这是由 于 sym('Num')和 sym(Num)的区别带来 图 2- 2 vpa 观察误差 的前者以字符串的形式传给符号运算内 核,可以保留完整的精度;而后者经过浮点数运算之后再转换为符号类型,存在精度损 失。 3.在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量。 sym('sin(w*t)') , sym('a*exp(-X)' ) , sym('z*exp(j*th)') 答:分别为 w,a,z,具体图 2-3 所示。
matlab课后习题答案
![matlab课后习题答案](https://img.taocdn.com/s3/m/7c83cd6a5bcfa1c7aa00b52acfc789eb172d9eb2.png)
第2章 MATLAB 矩阵运算基础2.1 在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? >> a=[5 7 3;4 9 1]2.5 计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。
>> a=[5 3 5;3 7 4;7 9 8]; >> b=[2 4 2;6 7 9;8 3 6];>> a+bans =7 7 7 9 14 13 15 12 142.6 求⎥⎦⎤⎢⎣⎡+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。
>> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i]; >> x’ans =4.0000 - 8.0000i 3.0000 - 2.0000i 3.0000 -5.0000i 7.0000 +6.0000i 2.0000 +7.0000i 9.0000 - 4.0000i 1.0000 - 4.0000i 3.0000 + 9.0000i 7.0000 + 5.0000i 4.0000 - 4.0000i2.7 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
>> a=[6 9 3;2 7 5];>> b=[2 4 1;4 6 8]; >> a.*b ans =12 36 3 8 42 402.9 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
>> A=[4 9 2;7 6 4;3 5 7];>> B=[37 26 28]’;-0.5118 4.0427 1.33182.10 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
matlab基础与应用教程课后答案
![matlab基础与应用教程课后答案](https://img.taocdn.com/s3/m/b18bfffece2f0066f53322b5.png)
matlab基础与应用教程课后答案【篇一:matlab教程基本应用练习题及解答】txt>要求:将每题的答案(命令行和运行结果、图片或m文件的文件名及具体内容)直接拷贝插入到各题的下方:(1)若为命令行,要求将提示符“”一起拷入,并在右侧用“%”注明命令行的每条命令的作用;(2)若为多个运行结果,拷入后要求解释每个结果具体对应题目中的哪个要求,也在右侧用“%”注明;(3)如果为m文件,除了将文件名和此文件的具体内容全部拷入外,再将所有原始m文件和本练习题电子版放在一个以“专业班级+本人姓名+学号”命名的文件夹内一起上传。
ans =1 0 00 1 00 0 1ans =0 0 00 0 0ans =1 1 11 1 11 1 11 1 120+40*rand(1,10) %生成10个在区间[20,60]上均匀分布的随机数。
ans =44.617351.677556.872549.528327.050636.228257.418856.676236 .410855.7460二.1)计算向量(2,4,6,8)的最大值,最小值,平均值,中值,排序,总和值; max([2,4,6,8])%最大值ans =8min([2,4,6,8])% 最小值ans =2mean([2,4,6,8])% 平均值ans =5median([2,4,6,8])% 中值ans =5sort([2,4,6,8])% 排序ans =2 4 6 8sum([2,4,6,8])% 总和值ans =202)在行向量(2,4,6,8)和(1,3,5,7)之间实施加减乘除及幂运算; a=[2 4 6 8];b=[1 3 5 7];a+b%加ans =3 7 11 15a-b%减ans =1 1 1 1a.*b%乘ans =2 12 30 56a./b%除ans =2.0000 1.3333 1.2000 1.1429a.^b%幂ans =2 64 7776 20971523)在向量(1,3,5)与标量2之间实施加减乘除及幂运算。
matlab教程习题答案
![matlab教程习题答案](https://img.taocdn.com/s3/m/633df0ba951ea76e58fafab069dc5022abea4657.png)
matlab教程习题答案MATLAB教程习题答案MATLAB是一种广泛应用于科学计算和工程领域的高级编程语言和环境。
它的强大功能和灵活性使得许多人对其感兴趣,但对于初学者来说,掌握MATLAB 可能会有一些困难。
为了帮助大家更好地理解和掌握MATLAB,下面将给出一些常见的MATLAB教程习题的答案,希望能对大家有所帮助。
1. 编写一个MATLAB程序,计算1到100之间所有偶数的和。
答案:```matlabsum = 0;for i = 2:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB程序,生成一个10行10列的随机矩阵,并计算该矩阵的行和列的和。
答案:```matlabmatrix = rand(10, 10);row_sum = sum(matrix, 2);col_sum = sum(matrix);disp(col_sum);```3. 编写一个MATLAB程序,计算斐波那契数列的前20个数。
答案:```matlabfibonacci = zeros(1, 20);fibonacci(1) = 1;fibonacci(2) = 1;for i = 3:20fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);enddisp(fibonacci);```4. 编写一个MATLAB程序,计算一个正整数的阶乘。
答案:```matlabnum = input('请输入一个正整数:');factorial = 1;for i = 1:numfactorial = factorial * i;end```5. 编写一个MATLAB程序,求解一个二次方程的根。
假设二次方程的形式为ax^2 + bx + c = 0,其中a、b、c为用户输入的系数。
答案:```matlaba = input('请输入二次方程的系数a:');b = input('请输入二次方程的系数b:');c = input('请输入二次方程的系数c:');delta = b^2 - 4*a*c;if delta < 0disp('该二次方程无实根。
MATLAB基础及其应用教程-周开利-邓春晖课后标准答案
![MATLAB基础及其应用教程-周开利-邓春晖课后标准答案](https://img.taocdn.com/s3/m/877c6fefaff8941ea76e58fafab069dc502247c1.png)
MATLAB基础及其应⽤教程-周开利-邓春晖课后标准答案MATLAB基础及其应⽤教程-周开利-邓春晖课后答案————————————————————————————————作者:————————————————————————————————⽇期:第三章习题及参考答案解答:>> p=[1 -1 -1];>> roots(p)ans =-0.61801.6180解答:取n=5,m=61>> x=linspace(0,2*pi,5); y=sin(x);>> xi=linspace(0,2*pi,61);>> y0=sin(xi);>> y1=interp1(x,y,xi);>> y2=interp1(x,y,xi,'spline');>> plot(xi,y0,'o',xi,y1,xi,y2,'-.');>> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on分段线性和三次样条插值⽅法与精确值之差取n=11,m=61>> x=linspace(0,2*pi,11); y=sin(x);>> xi=linspace(0,2*pi,61);>> y0=sin(xi);>> y1=interp1(x,y,xi);>> y2=interp1(x,y,xi,'spline');>> plot(xi,y0,'o',xi,y1,xi,y2,'-.');>> subplot(2,1,1); plot(xi,y1-y0);grid on分段线性和三次样条插值⽅法与精确值之差解答:>> x=[0,300,600,1000,1500,2000];>> y=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491]; >> xi=0:100:2000;>> y0=1.0332*exp(-(xi+500)/7756);>> y1=interp1(x,y,xi,'spline');>> p3=polyfit(x,y,3);>> y3=polyval(p3,xi);>> subplot(2,1,1);plot(xi,y0,'o',xi,y1,xi,y3,'-.'); >> subplot(2,1,2);plot(xi,y1-y0,xi,y3-y0);grid on插值和拟合⽅法相⽐较,都合理,误差也相近。
MATLAB基础与应用第二版课后习题答案
![MATLAB基础与应用第二版课后习题答案](https://img.taocdn.com/s3/m/134bd6044531b90d6c85ec3a87c24028915f8536.png)
通信电路仿真上机试题班级:姓名:学号:第一章4.gcd函数用于求两个数的最大公约数。
现拥有help命令查看该函数的用法,然后利用该函数15和35的最大约数。
程序: >> help gcdGCD Greatest common divisor.G = GCD(A,B) is the greatest common divisor of correspondingelements of A and B. The arrays A and B must contain non-negativeintegers and must be the same size (or either can be scalar).GCD(0,0) is 0 by convention; all other GCDs are positive integers.[G,C,D] = GCD(A,B) also returns C and D so that G = A.*C + B.*D.These are useful for solving Diophantine equations and computingHermite transformations.See also LCM.结果:>> g=gcd(15,35)g =56.以致三角形的三边a=9.6,b=13.7,c=19.4,求三角形的面积。
提示:利用海伦公式area=sqrt(s*(s-a)*(s-b)*(s-c))计算,其中s=(a+b+c)/2。
程序:clearclca=9.6,b=13.7,c=19.4s=(a+b+c)/2area=sqrt(s*(s-a)*(s-b)*(s-c))结果:a = 9.6000 b =13.7000 c = 19.4000 s = 21.3500 area = 61.1739第二章5.计算下列分段函数0 x<=5F(x)= (x-3)/4 5<x<=102*x x>10程序:clearclcx=input('请输入一个数,x=');if x<=5y=0;elseif x>5&x<=10y=(x-3)/4;else x>10y=2*x;endy结果:请输入一个数,x=11y =228.已知S=1+2+2^2+2^3+…+2^63,求S 的值。
MATLAB 课后部分答案
![MATLAB 课后部分答案](https://img.taocdn.com/s3/m/fe7e070703d8ce2f006623f9.png)
P77 第2章1、>> x=2;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)>> x=4;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)7、>> mat=rand(4,5);>> m=1;>> for i=1:2for j=1:5if mat(i,j)>0.3b(m)=mat(i,j);m=m+1;endendend>> b8、>> V=inv(A)>> A=rand(5,5);10、>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C=A*B??? Error using ==> mtimesInner matrix dimensions must agree.>> C=A.*BC =5 16 24 -26-18 -12 -15 72-2 -21 108 -5611、>> x=linspace(0,2*pi,125);>> y=cos((x).*(0.5+3*sin(x)./(1+x.^2)));>> plot(x,y)13、>> x=-2:0.1:2;y=-2:0.1:2;>> [X,Y]=meshgrid(x,y);>> Z=X.^2.*exp(-X.^2-Y.^2);>> mesh(Z)建立一个M函数文件mycos.m,程序如下:function y=mycos(x)clear allx=input('请输入x的值')y=1./((x-2).^2+0.1)+1./((x-3).^3+0.01)在命令窗口输入:mycosP123 第3章1、>> x=[446 714 950 1422 1634];y=[7.04 4.28 3.40 2.54 2.13];>> xi=500:500:1500;>> yi=interp1(x,y,xi,'linear')4、>> p=[3 4 7 2 9 12];>> roots(p)8、>> a=[2 4 9;4 2 4;9 4 18];>> [V,D]=eig(a) %V的列向量是相应的特征向量,对角阵D的对角元素为a的特征值10、>> p1=[-1 4 0];p2=[-1 -4 0];>> A=polyder(p1);B=polyder(p2);>> A1=roots(A);B1=roots(B);>> y=4*A1-4*B1-A1.^2-B1.^213、>> syms x y>> Ex=int(int(x.*12.*y.^2,y,0,x),x,0,1)>> Ey=int(int(y.*12.*y.^2,x,y,1),y,0,1)>> Exy=Ex.*Ey14、>> A=rand(4,4);>> [L,U]=lu(A)>> [Q,R]=qr(A)P183 第4章1、>> n=-2*pi:0.01:2*pi;>> N=12;x=cos(n*pi./6);>> X=fft(x,N)>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> y=conv(xn,hn)4、>> n=0:11;h=0:5;>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> M=length(xn);N=length(hn);>> L=pow2(nextpow2(M+N-1));>> Xk=fft(xn,L);Hk=fft(hn,L);>> Yk=Xk.*Hk;>> yn=ifft(Yk,L)5、>> num=[2 3 0];den=[1 0.4 1];>> [z,p,k]=tf2zp(num,den)6、>> num=[4 15.6 6 2.4 -6.4];den=[3 2.4 6.3 -11.4 6]; >> [z,p,k]=tf2zp(num,den)>> zplane(z,p)7、>> num=[18 0 0 0];den=[18 3 -4 -1];>> [r,p,k]=residuez(num,den)9、建立一个M函数文件,程序如下:clear allN=10;[z,p,k]=buttap(N);[A,B,C,D]=zp2ss(z,p,k);wc1=100;wc2=200;[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,wc1,wc2);[num1,den1]=ss2tf(At,Bt,Ct,Dt);[num2,den2]=impinvar(num1,den1);dimpulse(num2,den2)10、建立一个M函数文件,程序如下:clear allwp=100*2*pi;ws=200*2*pi;Rp=2;Rs=15;Fs=500;[N,Wc]=buttord(wp,ws,Rp,Rs,'s'); %选择滤波器的最小阶数[z,p,k]=buttap(N);[B,A]=zp2tf(z,p,k);[num,den]=bilinear(B,A,Fs); %模拟滤波器的传递函数转换为数字滤波器的传递函数freqz(num,den)11、建立一个M函数文件,程序如下:clear allN=48;w=[0.35,0.65];B=fir1(N,w,'bandpass'); %返回一个N阶的带通滤波器freqz(B) %绘制滤波器的频率响应曲线12、建立一个M函数文件,程序如下:clear allN=37;wc=0.3*pi;B=fir1(N,wc);freqz(B) %绘制滤波器的频率响应曲线13、建立一个M函数文件,程序如下:clear allN=55;F=[0:1/55:1];A=[ones(1,28),zeros(1,N-27)];B=fir2(N,F,A);freqz(B) %绘制滤波器的频率响应曲线15、建立一个M函数文件,程序如下:clear allwc=0.4*pi/(2*pi);N=12;[B,A]=butter(N,wc);%设计N阶截止频率为wc的Butterworth低通数字滤波器的传递函数模型m=dimpulse(B,A,101);stem(m,'.')P277 第6章2、建立一个M函数文件,程序如下:function [h,l]=huffmancode(P)if length(find(P<0))~=0,error('Not a prod.vector')endif abs(sum(P)-1)>10e-10error('Not a prod.vector')endn=length(P);for i=1:n-1for j=i:nif P(i)<=P(j)p=P(i);P(i)=P(j);P(j)=p;endendenddisp('概率分布'),PQ=P;m=zeros(n-1,n);for i=1:n-1[Q,l]=sort(Q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];Q=[Q(1)+Q(2),Q(3:n),1];endfor i=1:nc(i,:)=blanks(n*n);endc(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));c(n-1,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));endendfor i=1:nh(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));endl=sum(P.*ll); %计算平均码长在命令窗口中输入:>> P=[0.20 0.15 0.13 0.12 0.1 0.09 0.08 0.07 0.06];>> [h,l]=huffmancode(P)3、建立一个M函数文件,程序如下:function[sqnr,a_quan,code]=u_pcm(a,n)% U_PCM 一个序列均匀的PCM编码.% n=量化级数的数目(偶数).% sqnr=输入信号量化噪声比(偶数)。
matlab课后习题与答案
![matlab课后习题与答案](https://img.taocdn.com/s3/m/0cad0eff360cba1aa911da02.png)
习题二1.如何理解“矩阵是MATLAB最基本的数据对象”?答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。
因此,矩阵是MATLAB最基本、最重要的数据对象。
2.设A和B是两个同维同大小的矩阵,问:(1)A*B和A.*B的值是否相等?答:不相等。
(2)A./B和B.\A的值是否相等?答:相等。
(3)A/B和B\A的值是否相等?答:不相等。
(4)A/B和B\A所代表的数学含义是什么?答:A/B等效于B的逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵的逆左乘A矩阵,即inv(B)*A。
3.写出完成下列操作的命令。
(1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。
答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5])(2)删除矩阵A的第7号元素。
答:A(7)=[](3)将矩阵A的每个元素值加30。
答:A=A+30;(4)求矩阵A的大小和维数。
答:size(A);ndims(A);(5)将向量t的0元素用机器零来代替。
答:t(find(t==0))=eps;(6)将含有12个元素的向量x转换成34矩阵。
答:reshape(x,3,4);(7)求一个字符串的ASCII码。
答:abs(‘123’); 或double(‘123’);(8) 求一个ASCII 码所对应的字符。
答:char(49);4. 下列命令执行后,L1、L2、L3、L4的值分别是多少?A=1:9;B=10-A;...L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);答:L1的值为[0, 0, 0, 0, 1, 0, 0, 0, 0]L2的值为[1, 1, 1, 1, 1, 0, 0, 0, 0]L3的值为[0, 0, 0, 1, 1, 1, 0, 0, 0]L4的值为[4, 5, 6]5. 已知23100.7780414565532503269.5454 3.14A -⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥-⎣⎦完成下列操作:(1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角32⨯子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。
matlab课后习题答案(1-9章)要点
![matlab课后习题答案(1-9章)要点](https://img.taocdn.com/s3/m/2a774818eff9aef8941e065b.png)
1 数字1.5e2,1.5e3 中的哪个与1500相同吗?1.5e32 请指出如下5个变量名中,哪些是合法的?abcd-2xyz_3 3chan a 变量ABCDefgh 2、5是合法的。
3 在MATLAB 环境中,比1大的最小数是多少? 1+eps4 设 a = -8 , 运行以下三条指令,问运行结果相同吗?为什么?w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2w1 = -2.0000 + 3.4641i ;w2 = 4.0000 ;w3 =-2.0000 + 3.4641i 5 指令clear, clf, clc 各有什么用处?clear 清除工作空间中所有的变量。
clf 清除当前图形。
clc 清除命令窗口中所有显示。
第二章1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象?3/7+0.1双; sym(3/7+0.1)符; sym('3/7+0.1') 符;; vpa(sym(3/7+0.1)) 符;2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') symvar(sym('sin(w*t)'),1) w a z3 (1)试写出求三阶方程05.443=-x 正实根的程序。
注意:只要正实根,不要出现其他根。
(2)试求二阶方程022=+-a ax x 在0>a 时的根。
(1)reset(symengine)syms x positive solve(x^3-44.5) ans =(2^(2/3)*89^(1/3))/2(2)求五阶方程022=+-a ax x 的实根 syms a positive %注意:关于x 的假设没有去除 solve(x^2-a*x+a^2)Warning: Explicit solution could not be found. > In solve at 83 ans =[ empty sym ]syms x clear syms a positivesolve(x^2-a*x+a^2) ans =a/2 + (3^(1/2)*a*i)/2 a/2 - (3^(1/2)*a*i)/24 观察一个数(在此用@记述)在以下四条不同指令作用下的异同。
MatLab语言及应用--习题及参考答案
![MatLab语言及应用--习题及参考答案](https://img.taocdn.com/s3/m/a55fb8d0011ca300a7c39023.png)
MatLab语言及应用--习题1.产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!1.A = [21 2 3; 4 35 6; 7 8 49];B = [3; 2; 1];设求AB、BTA、A-1与A-1B,求A2、A的2次数幂,并求矩阵A的秩、转置和行列式。
2.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5]4. 请修改下面的程序,让他们没有for循环语句!A=[1 2 3; 4 5 6; 7 8 9];[r c]=size(A);for i=1:1:rfor j=1:1:cif (A(i,j)>8 | A(i,j)<2)A(i,j)=0;endendend5.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单。
6. 求下列联立方程的解3x+4y-7z-12w=45x-7y+4z+ 2w=-3x +8z- 5w=9-6x+5y-2z+10w=-8求系数矩阵的秩;求出方程组的解。
7.设 y=cos[0.5+((3sinx)/(1+x^2))]把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线;8. 设f(x)=x^5-4x^4+3x^2+2x+6取x=[-2,8]之间函数的值(取100个点),画出 曲线,看它有几个零点。
9. 在[-10,10;-10,10]范围内画出函数的三维图形。
10.编写一个函数,使其能够产生如下的分段函数:⎪⎩⎪⎨⎧≤≤<-≤=x x x x x x f 65.0620.251.525.0)(,,,,并调用此函数,绘制曲线2)()(范围的2],[0在+•+=x f x f x 。
(10分)11.将一个屏幕分4幅,选择合适的步长在右上幅与左下幅绘制出下列函数的图形。
MATLAB课后习题集附标准答案
![MATLAB课后习题集附标准答案](https://img.taocdn.com/s3/m/1f66f2827c1cfad6185fa707.png)
第2章 MATLAB概论1、与其他计算机语言相比较,MATLAB语言突出的特点是什么?答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强.2、MATLAB系统由那些部分组成?答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口3、安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装.第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可.矚慫润厲钐瘗睞枥庑赖。
4、MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?聞創沟燴鐺險爱氇谴净。
答:在MATLAB操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上.残骛楼諍锩瀨濟溆塹籟。
5、如何启动M文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动.在命令窗口中键入edit命令时也可以启动M文件编辑/调试器.酽锕极額閉镇桧猪訣锥。
6、存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.彈贸摄尔霁毙攬砖卤庑。
7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中.謀荞抟箧飆鐸怼类蒋薔。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章习题及参考答案
解答:
>> p=[1 -1 -1];
>> roots(p)
ans =
-0.6180
1.6180
解答:
取n=5,m=61
>> x=linspace(0,2*pi,5); y=sin(x);
>> xi=linspace(0,2*pi,61);
>> y0=sin(xi);
>> y1=interp1(x,y,xi);
>> y2=interp1(x,y,xi,'spline');
>> plot(xi,y0,'o',xi,y1,xi,y2,'-.');
>> subplot(2,1,1); plot(xi,y1-y0);grid on
>> subplot(2,1,2); plot(xi,y2-y0);grid on
分段线性和三次样条插值方法与精确值之差取n=11,m=61
>> x=linspace(0,2*pi,11); y=sin(x);
>> xi=linspace(0,2*pi,61);
>> y0=sin(xi);
>> y1=interp1(x,y,xi);
>> y2=interp1(x,y,xi,'spline');
>> plot(xi,y0,'o',xi,y1,xi,y2,'-.');
>> subplot(2,1,1); plot(xi,y1-y0);grid on
>> subplot(2,1,2); plot(xi,y2-y0);grid on
分段线性和三次样条插值方法与精确值之差
解答:
>> x=[0,300,600,1000,1500,2000];
>> y=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491]; >> xi=0:100:2000;
>> y0=1.0332*exp(-(xi+500)/7756);
>> y1=interp1(x,y,xi,'spline');
>> p3=polyfit(x,y,3);
>> y3=polyval(p3,xi);
>> subplot(2,1,1);plot(xi,y0,'o',xi,y1,xi,y3,'-.');
>> subplot(2,1,2);plot(xi,y1-y0,xi,y3-y0);grid on
插值和拟合方法相比较,都合理,误差也相近。
解答:
梯形法积分
>> x=-3:0.01:3;
>> y=exp(-x.^2/2);
>> z=trapz(x,y)/(2*pi)
z =
0.3979
辛普森积分
>> z=quad('exp(-x.^2/2)',-3,3)/(2*pi)
z =
0.3979
积分区间改为-5~5:
梯形法积分
>> x=-5:0.01:5;
>> y=exp(-x.^2/2);
>> z=trapz(x,y)/(2*pi)
z =
0.3989
辛普森积分
>> z=quad('exp(-x.^2/2)',-5,5)/(2*pi)
z =
0.3989
积分区间改变了,两种积分的结果依然相同。
梯形积分中改变x的维数为2维数组
>>x(1,:)=-5:0.01:5
>> x(2,:)=-5:0.01:5
>> y=exp(-x.^2/2);
>> z=trapz(x,y)/(2*pi)
??? Error using ==> trapz
LENGTH(X) must equal the length of the first non-singleton dimension of Y.
结论参考教材第82页。
解答:
>> x=linspace(0,1,4);
>> y=x./(x.^2+4);
>> t=cumsum(y)*(1-0)/(4-1);
>> z1=t(end)
>> z2=trapz(x,y)
>> z3=quad('x./(x.^2+4)',0,1)
>> z4=quadl('x./(x.^2+4)',0,1)
z1 =
0.1437。