MM-关于设置GR的tolerance(使用BADI)

---------------------------------------------------------------------------------------------

注:文中图片被隐去。请参看完整文档。

---------------------------------------------------------------------------------------------

一.需求:
对于company code:C999, 所使用的会计科目表(chart of acc): A999;material type : HALB(semi-finished );plant: A999;

如果做GR收货,首先报warning msg:

  
如果数量大于 5000,报error msg:

------------------------------------------------------------------------------------------------------

haveattach.gif使用BADI为特定Material type设置收货容量


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17144169/viewspace-610838/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17144169/viewspace-610838/

在MATLAB中,Gauss-Seidel迭代是一种用于求解线性系统Ax = b的数值方法,尤其适用于大型稀疏矩阵。这是一种迭代方法,通过逐步更新每个未知数的估计值,直到达到收敛。以下是使用MATLAB实现Gauss-Seidel迭代的基本步骤: 1. 定义矩阵A、向量b以及初始猜测的解x0。 ```matlab A = sparse; % 或者输入你的稀疏矩阵 b = randn(size(A, 1), 1); % 随机生成右端向量 x0 = zeros(size(A, 2), 1); % 初始解为零向量 ``` 2. 创建函数handle,该函数包含了迭代的核心逻辑,通常包含以下部分: - 检查矩阵是否对角占优(如果非对角元素绝对值小于主对角线上对应的元素,则称矩阵是对角占优的) - 更新当前解 ```matlab function x_new = gauss_seidel(A, b, x, tolerance) n = size(A, 2); flag = true; % 对角占优标志,默认认为是的 if ~issparse(A) || abs(diag(A)) <= sum(abs(A(~diag)), 'all') warning('Matrix is not diagonally dominant, convergence may be slow or fail.'); flag = false; end delta = A*x - b; % 差分向量 x_new = x + diag(diag(A)).^-1 * delta; % Gauss-Seidel更新 end ``` 3. 设置迭代次数、容差等参数,并开始迭代: ```matlab max_iter = 1000; % 最大迭代次数 tolerance = 1e-6; % 可接受的解的变化程度 converged = false; for iter = 1:max_iter x_new = gauss_seidel(A, b, x, tolerance); if norm(x_new - x) < tolerance converged = true; break; % 达到收敛条件 end x = x_new; % 更新当前解 end if converged fprintf('Converged after %d iterations.\n', iter); else fprintf('Did not converge within %d iterations.\n', max_iter); end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值