function Rat(_n,_m) { return {type:"Rat",n:_n,m:_m}; } function norm(x) { ret=x; h=gcd(ret.m,ret.n); ret.m=ret.m/h; ret.n=ret.n/h; if(ret.m<0) { ret.m*=-1; ret.n*=-1; } return ret; } function add(x,y) { if(x.type=="Vector" && y.type=="Vector") { var n = x.n; rett=Vector(n); for(var ii=0;ii" s+="
" } fA.innerHTML = s; var fb = document.getElementById("b") var s="b=
" for (var i=0;i" } fb.innerHTML = s; var fx0 = document.getElementById("x0") var s="x0=
" for (var i=0;i" } fx0.innerHTML = s; if(n==3) { document.getElementById("A00").value=3; document.getElementById("A01").value=-1; document.getElementById("A02").value=1; document.getElementById("A10").value=-1; document.getElementById("A11").value=3; document.getElementById("A12").value=-1; document.getElementById("A20").value=1; document.getElementById("A21").value=-1; document.getElementById("A22").value=3; document.getElementById("b0").value=-1; document.getElementById("b1").value=-1; document.getElementById("b2").value=0; document.getElementById("x00").value=0; document.getElementById("x01").value=1; document.getElementById("x02").value=0; } } function solve() { var n = document.getElementById("n").value var ans="" x=[]; fx=[]; alpha=[]; betha=[]; s=[]; A=Matrix(n); for(var i=0;i"; ans+="b="+st(b)+"
"; ans+="x0="+st(x[0])+"
"; ans+="
Solution:
" for(var kk=1;kk<=2*n;kk++) { ans+="
k="+kk+"
"; fx[kk-1]=add(mul(A,x[kk-1]),b); ans+="fx(x"+(kk-1)+")="+st(fx[kk-1])+"
"; var ww = mul(fx[kk-1],fx[kk-1]); if(ww.n==0) { ans+="Solution found.
"; ans+="x* = " + st(x[kk-1])+"
"; var xx = x[kk-1]; var t1 = mul(xx, mul(A,xx)); var t2 = mul(b,xx); var ff = add(mul(Rat(1,2),t1),t2); ans+= "f* = ½ (x*, A x*) + b x* = " + st(ff); break; } if(kk==1) { s[1] = mul(Rat(-1,1),fx[0]); ans+="s1=-fx(x0)=" + st(s[1])+ "
"; } else { var t1 = mul(A,s[kk-1]); var t2= mul(s[kk-1],t1); var t3 = mul(fx[kk-1],t1); betha[kk-1]=div(t3,t2); ans+="β"+(kk-1)+" = [fx(x"+(kk-1)+") A s"+(kk-1)+"]/[s"+(kk-1)+" A s"+(kk-1)+"]="+ st(betha[kk-1])+"
"; s[kk] = add(mul(Rat(-1,1),fx[kk-1]),mul(betha[kk-1],s[kk-1])); ans+="s" +kk +"=-fx(x"+(kk-1)+")+β"+(kk-1)+"s"+(kk-1)+"=" + st(s[kk])+ "
"; } var t1 = mul(A,s[kk]); var t2 = mul(s[kk],t1); var t3 = mul(fx[kk-1],s[kk]); alpha[kk] = mul(Rat(-1,1),div(t3,t2)); ans+="α"+kk+" = -[fx(x"+(kk-1)+"), s"+kk+"]/[s"+kk+" A s"+kk+"] = " + st(alpha[kk])+"
"; x[kk]=add(x[kk-1],mul(alpha[kk],s[kk])); ans+="x"+kk+" = x"+(kk-1)+" + α"+kk+"s"+kk+" = " + st(x[kk])+"
"; } document.getElementById("solution").innerHTML = ans; }