1. 求函數(shù)在指定點(diǎn)的數(shù)值導(dǎo)數(shù)。
解:M文件:
clc;clear;
x=1;
i=1;
f=inline('det([x x^2 x^3;1 2*x 3*x^2;0 2 6*x])');
while x<=3.01
g(i)=f(x);
i=i+1;
x=x+0.01; %以0.01的步長增加,可再縮小步長提高精度
end
g;
t=1:0.01:3.01;
dx=diff(g)/0.01; %差分法近似求導(dǎo)
f1=dx(1) %x=1的數(shù)值倒數(shù)
f2=dx(101) %x=2的數(shù)值倒數(shù)
f3=dx(length(g)-1) %x=3的數(shù)值倒數(shù)
運(yùn)行結(jié)果:
f1 =
6.0602
f2 =
24.1202
f3 =
54.1802
2. 用數(shù)值方法求定積分。
(1) 的近似值。
(2)
解:M文件:
clc;clear;
f=inline('sqrt(cos(t.^2)+4*sin(2*t).^2+1)');
I1=quad(f,0,2*pi)
g=inline('log(1+x)./(1+x.^2)');
I2=quad(g,0,2*pi)
運(yùn)行結(jié)果:
3. 分別用3種不同的數(shù)值方法解線性方程組。
解:M文件:
clc;clear;
A=[6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2];
b=[-4 13 1 11]';
x=A
y=inv(A)*b
[L,U]=lu(A);
z=U(L)
運(yùn)行結(jié)果:
4. 求非齊次線性方程組的通解。
解:M文件
function [x,y]=line_solution(A,b)
[m,n]=size(A);
y=[ ];
if norm(b)>0 %非齊次方程組
if rank(A)==rank([A,b])
if rank(A)==n
disp('有唯一解x');
x=A;
else
disp('有無窮個(gè)解,特解x,基礎(chǔ)解系y');
x=A;
y=null(A,'r');
end
else
disp('無解');
x=[ ];
end
else %齊次方程組
disp('有零解x');
x=zeros(n,1);
if rank(A)<n
disp('有無窮個(gè)解,基礎(chǔ)解系y');
y=null(A,'r');
end
end
clc;clear;
format rat
A=[2 7 3 1;3 5 2 2;9 4 1 7];
b=[6 4 2]';
[x,y]=line_solution(A,b)
運(yùn)行結(jié)果:
有無窮個(gè)解,特解x,基礎(chǔ)解系y
Warning: Rank deficient, rank = 2, tol = 8.6112e-015.
> In line_solution at 11
x =
-2/11
10/11
0
0
y =
1/11 -9/11
-5/11 1/11
1 0
0 1
所以原方程組的通解是:
,其中 為任意常數(shù)。
5. 求代數(shù)方程的數(shù)值解。
(1) 3x+sinx-ex=0在x0=1.5附近的根。
(2) 在給定的初值x0=1,y0=1,z0=1下,求方程組的數(shù)值解。
解:M文件:
function g=f(x)
g=3*x+sin(x)-exp(x);
clc;clear;
fzero('f',1.5)
結(jié)果是:
ans =
1289/682
(2). M文件:
function F=fun(X)
x=X(1);
y=X(2);
z=X(3);
F(1)=sin(x)+y^2+log(z)-7;
F(2)=3*x+2-z^3+1;
F(3)=x+y+z-5;
X=fsolve('myfun',[1,1,1]',optimset('Display','off'))
運(yùn)行結(jié)果:
6. 求函數(shù)在指定區(qū)間的極值。
(1) 在(0,1)內(nèi)的最小值。
(2) 在[0,0]附近的最小值點(diǎn)和最小值。
解:M文件:
function f=g(u)
x=u(1); y=u(2);
f=2*x.^3+4*x.*y^3-10*x.*y+y.^2;
clc;clear;
format long
f=inline('(x^3+cos(x)+x*log(x))/exp(x)');
[x,fmin1]=fminbnd(f,0,1)
[U,fmin2]=fminsearch('g',[0,0])
運(yùn)行結(jié)果
7. 求微分方程的數(shù)值解。
解:M文件:
function xdot= sys( x,y)
xdot=[y(2);(5*y(2)-y(1))/x];
clc;clear;
x0=1.0e-9;xf=20;
[x,y]=ode45('sys',[x0,xf],[0 0]);
[x,y]
運(yùn)行結(jié)果:
8. 求微分方程組的數(shù)值解,并繪制解的曲線。
解: 令y1=x,y2=y,y3=z; 這樣方程變?yōu)?/span>:
,自變量是t
M文件:
function xdot=sys(x,y)
xdot=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];
clc;clear;
t0=0;tf=8;
[x,y]=ode23('sys',[t0,tf],[0,1,1])
plot(x,y)