取值函数与赋值函数--类

     用于获得一个类的私有成员变量值的成员函数成为“取值函数”。取值函数不需要返回每个成员变量的字面值,但必须返回与那些值等价的东西。虽然C++语言规范没有要求,但通常都在取值函数的名称中包含单词get;

    用于更改一个类私有成员变量值得成员函数称为“赋值函数”,虽然C++语言规范没有要求,但通常都在取值函数的名称中包含单词set;

   最好为每个类定义都包含相应的取值函数和赋值函数,以便存取一个类对象中的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
G-S(Gauss-Seidel)迭代法是一种求解线性方程组的迭代方法。如果我们需要求解线性方程组Ax=b,其A是一个n×n的矩阵,b是一个n维向量,那么G-S迭代法可以表示为: x^(k+1)_i = (b_i - Σ(A_i,j * x_j^(k+1))(j=1,...,i-1) - Σ(A_i,j * x_j^(k))(j=i+1,...,n))/A_i,i 其,x^(k)_i表示在第k次迭代,x的第i个分量的值,A_i,j表示矩阵A的第i行第j列的元素。 现在我们来实现G-S迭代法的Matlab代码。假设我们已经有了A和b的矩阵表示,我们可以按照如下步骤实现G-S迭代法: 1. 初始化x为一个n维零向量,即x=zeros(n,1)。 2. 设置迭代次数kmax和误差限eps。 3. 进行kmax次迭代,每次迭代计算x的新值x_new,直到误差小于eps或者达到迭代次数上限。 4. 在每次迭代,对于每个分量i,计算x_new(i)的值,并将其赋值给x(i)。 5. 返回x作为线性方程组Ax=b的近似解。 下面是一个简单的Matlab代码实现: ``` function x = gs_iter(A, b, kmax, eps) % A: 系数矩阵 % b: 常数矩阵 % kmax: 最大迭代次数 % eps: 误差限 n = size(A, 1); % 矩阵A的行数,也是未知量个数 x = zeros(n, 1); % 初始化x为零向量 for k = 1:kmax % 进行kmax次迭代 x_new = x; % 初始化x_new为当前的x for i = 1:n % 对于每个分量i,计算x_new(i)的值 s1 = 0; % 初始化Σ(A_i,j * x_j^(k+1))(j=1,...,i-1) s2 = 0; % 初始化Σ(A_i,j * x_j^(k))(j=i+1,...,n) for j = 1:i-1 s1 = s1 + A(i,j) * x_new(j); end for j = i+1:n s2 = s2 + A(i,j) * x(j); end x_new(i) = (b(i) - s1 - s2) / A(i,i); % 计算x_new(i)的值 end if norm(x_new - x) < eps % 如果误差小于eps,退出迭代 break; end x = x_new; % 将x_new赋值给x end end ``` 在这个代码,我们使用了Matlab内置的norm函数来计算向量的范数,其norm(x_new - x)就是计算向量x_new和x之间的欧几里得距离。如果这个距离小于eps,说明x已经足够接近线性方程组Ax=b的解,可以退出迭代。注意,在实际应用,我们需要根据具体问题来调整迭代次数和误差限的取值

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值