Matlab使用入门
不会吧,这真有人看?
BY hllinyu
2023年4月6日
一、 实验内容
1、 根据“参考学习资料 3”进行自学,完成“参考学习资料 1”中的 Matlab 在线入门 基础课程,熟悉 Matlab 软件的基本使用方法和常见操作;掌握 Matlab 语言的基本 语法以及基本程序编写等。
2、 编写代码,使用 Matlab 软件求解下列多元线性方程组的解:
1)
2)
3、 编写代码绘制下列一元函数在指定区间内的函数图像,随后使用 Matlab 中的优化 工具包(optimization toolbox)求解使得函数值达到最大的最优解及对应的最大值:
二、 实验过程及结果
1. 第2题
代码
A1=[2 3 5;3 7 4; 1 -7 1];
B1=[10;3;5];
x1=A1\B1
A2=[6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2];
B2=[-4;13;1;11];
x2=A2\B2
运行结果
2. 第3题
代码
% 1)画图
x1 = linspace(0, 2, 1000);
y1 = (1 + x1.^2) ./ (1 + x1.^4);
plot(x1, y1)
title('f(x) = (1+x^2)/(1+x^4), x \in (0,2)')
xlabel('x')
ylabel('y')
figure
x2 = linspace(0, pi, 1000);
y2 = sin(x2) + cos(x2.^2);
plot(x2, y2)
title('f(x) = sin(x) + cos(x^2), x \in (0,\pi)')
xlabel('x')
ylabel('y')
% 2)使用优化工具箱求解最大值及对应的最优解
fun1 = @(x) -(1 + x^2) / (1 + x^4);
[xmax1,fmax1] = fminbnd(fun1, 0, 2);
fun2 = @(x) -(sin(x) + cos(x^2));
[xmax2,fmax2] = fminbnd(fun2, 0, pi);
fprintf('f(x) = (1+x^2)/(1+x^4), x ∈ (0,2)\n')
fprintf('最大值为 %f,对应的最优解为 %f\n', -fmax1, xmax1)
fprintf('f(x) = sin(x) + cos(x^2), x ∈ (0,pi)\n')
fprintf('最大值为 %f,对应的最优解为 %f\n', -fmax2, xmax2)
运行结果