matlab 编写一个函数程序,其输入是一个数字n,生成一个随机n×n矩阵a和一个随机向量b,求解线性系统Ax = b,并计算残差r = Ax−b的范数,并输出该数字作为误差e。为n = 5、10、50、100、500、1000、.. ..绘制e与n的对数-对数图
时间: 2023-11-28 22:47:48 浏览: 88
一种基于matlab的随机数生成函数程序
5星 · 资源好评率100%
以下是您所需的 Matlab 代码:
```matlab
function [e] = solve_linear_system(n)
a = rand(n);
b = rand(n,1);
x = a\b;
r = a*x - b;
e = norm(r);
end
```
您可以通过在命令行中输入“solve_linear_system(n)”来调用此函数,并将n替换为您想要的值。
接下来是绘制误差与n的对数-对数图的代码:
```matlab
n_values = [5, 10, 50, 100, 500, 1000];
e_values = zeros(length(n_values),1);
for i=1:length(n_values)
e_values(i) = solve_linear_system(n_values(i));
end
loglog(n_values,e_values,'-*')
xlabel('log(n)')
ylabel('log(e)')
title('误差与n的对数-对数图')
```
该代码将生成一个对数-对数图,其中x轴和y轴都是以10为底的对数刻度。
阅读全文