找回密码
 注册
关于网站域名变更的通知
查看: 465|回复: 4
打印 上一主题 下一主题

我自定义函数[x,k,err]=Jacobi(A,b,n)后怎么才能输出k和err?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-7 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
function [x,k,err]=Jacobi(A,b,n)% j# S, \1 K, o% p' T8 Q  A* ?- J# T
%Input A:系数矩阵; K, x4 B* @. {, k3 F
%Input b:右端向量
7 F3 P/ o2 p- l; u/ w+ U%Input n:系数矩阵的阶数
  c* }) ^  O. }5 c6 A: o: w8 F! z9 b%Input epsilon:计算精度/ S1 Y/ Z% E% S4 }7 a9 m6 o' C
%Input K:最大迭代次数
7 }" o1 B3 E$ [) I5 ~: m%Input x0:初始向量
3 s# s- _# f2 P$ U& Z4 p% f7 C( o%Output x:迭代近似解
# \$ {$ b$ S7 A! A, Aepsilon=1e-6;9 e: _! g$ f8 X+ G; u; _
K=5000;: x% j* b# @2 F# f$ y* ^; g
x0=rand(n,1);7 p% m4 g+ x1 k9 M/ g& N9 C
k=1;
! ^2 @3 N  V& O  Dx=x0;6 |& `# r) w- R3 i4 E6 X8 ^
while k<K
" D# b( I( G; |8 Z    for i=1:n4 f; K6 ?+ q- s& M$ e2 P0 `
        s=b(i);
; h2 y& G0 i- W0 Y$ _" a0 a+ N; z        for j=1:n
9 m4 y! S3 y+ C            s=s-A(i,j)*x(j);
/ g  P( Z: P: A, M+ c        end
6 Z% ~& ]0 K' r2 d8 f1 E        s=(s+A(i,i)*x(i))/A(i,i);
8 v2 Q! Z& W0 n        x(i)=s;3 ]$ _) l# C: r  f; I
    end
2 l. W- \6 O/ ]( u    if norm(x-x0,inf)<epsilon' ]* D& r- J, ?9 F: J% \$ h# u
        err=norm(x-x0,inf);  8 R6 T' l0 P: b9 k8 V
        break;8 ^# b! Q6 f5 ?. b  R* E
    end
4 L" j" Q  R2 U    k=k+1;- g& w8 ~3 d( T
end7 ~& b& u0 E* q& B0 Z7 x6 ]0 ]. ~
end
5 u8 u7 f/ e* Q& u( s' V4 h5 ~' N# P: r  E

, D6 ^/ Q3 u2 d4 T3 @( w/ |7 z# R% S: P4 v; W5 A& `) a' j

* e! V# R! Z  l3 c0 x' q- i; x- {; v5 \0 \4 X' b" d" r7 Y' T
在命令窗口输入 Jacobi([10,5,0,0;5,10,-4,0;0,-4,8,-1;0,0,-1,5],[6;25;-11;-11],4)后% }+ x+ U  s2 K& g( t5 P3 g
只得到了x的值,怎么输出k和err?
& y! D1 k/ m1 n# y; c! V+ j2 ?
( i8 v6 ~3 Z+ u; H0 C  E& h! q0 D

该用户从未签到

2#
发表于 2020-7-7 10:25 | 只看该作者
需要按方括号的格式调用后面的输出2 R  ^5 G, m" H& h$ b! Z' r
[x,k,err]=Jacobi([10,5,0,0;5,10,-4,0;0,-4,8,-1;0,0,-1,5],[6;25;-11;-11],4)

该用户从未签到

3#
发表于 2020-7-8 13:43 | 只看该作者
像k = 5000这样的等式可以写在函数参数里吗

点评

应该可以吧  详情 回复 发表于 2020-7-9 10:42

该用户从未签到

4#
发表于 2020-7-9 10:42 | 只看该作者
Uifhjvv 发表于 2020-7-8 13:43+ p3 e5 @2 R) l  J" l" w# \3 M
像k = 5000这样的等式可以写在函数参数里吗
5 ?. @5 p8 C' e$ S3 J" o5 c
应该可以吧
6 S4 N3 D, [  {, {: R8 A7 P( x

该用户从未签到

5#
发表于 2020-7-10 10:37 | 只看该作者
来学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 19:22 , Processed in 0.156250 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表