Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.09.2012, 21:05
Интересующийся
Отправить личное сообщение для Женя150 Посмотреть профиль Найти все сообщения от Женя150
 
Регистрация: 10.09.2012
Сообщений: 24

Не получается написать функцию
Я пишу программу, которая должна получить полином в следующем виде:
x^4*6+x^3*4+x^2+x

также подойдет вариант, если скобки будут нераскрыты, т.е. например:

(x-5)(x+9)(x-4) + (x-4)(x-3)(x+2) +...
вот формула, по которой считается :
*значок суммирования я тут написать не могу, так что напишу словами
*li(x) -здесь i -индекс, т.е "эль итое от икс"; f(xi)-"эф от икс итого"

L(x)=[сумма от i=0 до n] li(x)*f(xi)

f(xi)-значение функции в точке.

lk(x)=(x-x0)...(x-x(k-1))(x-x(k+1))...(x-xn) / (xl-x0)...(xk-x(k-1)) (xk-x(k+1))...(xk-xn)

lk(x)-"эль катое от икс"
x(k-1) -"икс ка минус первое"

Ввод данных уже организован (на ввод пользователь должен ввести ко-во узлов,потом сами узлы, интервалы для расчета Чебышевских узлов) значение функции в узлах программа считает.
Вот уже написанный код:

<html> 
	<head> 
	<script> 
	function vvod_elementov(N) { 
	    var N = N.value, div = document.getElementById("el_len"), span, input, but, sub; 
	    if (!parseInt(N, 10)) { return alert("Введенное значение не является числом!"); } 
	    else { N = parseInt(N, 10); } 
	    div.innerHTML = ""; 
	  
    for (i=0; i < N; i++) { 
        span = document.createElement("span"); 
        input = document.createElement("input"); 
	        input.setAttribute("type", "text"); 
	        input.setAttribute("name", "x"+i); 
	        but = document.createElement("input"); 
	        but.setAttribute("type", "button"); 
	        but.setAttribute("value", "Определить значение функции в узле"); 
	        but.onclick = (function(i) { return function() { Proverka(this.parentNode, i); } })(i); 
	        sub = document.createElement("sub"); 
	        sub.appendChild(document.createTextNode(i)); 
	        span.appendChild(document.createTextNode("Введите x")); 
	        span.appendChild(sub); 
	        span.appendChild(input); 
        span.appendChild(document.createElement("br")); 
        span.appendChild(document.createElement("br")); 
	        span.appendChild(but); 
        span.appendChild(document.createElement("br")); 
	        span.appendChild(document.createElement("br")); 
	        div.appendChild(span); 
	    } 
	} 




	  
	function Proverka(el, i) { 
	    var div = document.getElementById("res"), sub; 
   if (!parseInt(el.children[1].value)) { return alert("Введенное значение не является числом!"); } 
    else { var sin = parseInt(el.children[1].value)-Math.sin(parseInt(el.children[1].value))-0.25; 
    /* 	    если нужно в градусах то пишем 
	    var sin = (parseInt(el.children[1].value) * Math.PI / 180)-Math.sin(parseInt(el.children[1].value) * Math.PI / 180)-0.25; 
	    */ 
	    } 
	    //div.innerHTML = ""; 
	    sub = document.createElement("sub"); 
    sub.innerHTML = i; 
	    div.appendChild(document.createTextNode(" f(x")); 
    div.appendChild(sub); 
	    div.appendChild(document.createTextNode(") = ")); 
	    div.appendChild(document.createTextNode(sin)); 
		div.appendChild(document.createElement("br")); 
	} 

function Cheb(a,b) {
	
	
	var a=a.value;
	var b=b.value;
	var n1=6;
	
	
	
	document.write("<br>");
	document.write("a="+a);
	document.write("<br>");
	document.write("b="+b);		
	document.write("<br>");
	document.write("n1="+n1);
	document.write("<br>");
	document.write("Узлы Чебышева и значение данной функции в этих узлах");
	document.write("<br>");
	for (var i=0;i<n1; i++) {
	
	document.write("x"+i+"= ");
	var z=0.5*( (b-a)*Math.cos( (2*i+1)/(2*n1+1)*Math.PI)+b+a);
	document.write(z);
	document.write("<br>");
	
	document.write("f(x"+i+")= ");
	var fz=z-Math.sin(z)-0.25;
	document.write(fz);
	document.write("<br>");
	document.write("<br>");
	/*document.write("(x- " + z+")");
	document.write("<br>");
	document.write("<br>");*/
	
	
	
	
	
	}
	
	for (var i=0;i<n1; i++) {
	
	
	+document.write("(x- " + 0.5*( (b-a)*Math.cos( (2*i+1)/(2*n1+1)*Math.PI)+b+a)+")");
	
	
	}
	
	}
	
	
	</script> 
	</head> 
	<body> 
<div>Пожалуйста, введите количество узлов</div> 
	<input type="text" id="el" value="0"><input type="button" value="Перейти к вводу узлов" onClick="vvod_elementov(document.getElementById('el'))"> 
	<div id="el_len"></div> 
	<div id="res"></div> 	



<div>Пожалуйста, задайте интервал [a;b] для расчета Чебышевских узлов </div>
<div></div> 
	<div> a=<input type="text" id="a" value="0"></div>
<div></div>
	<div> b=<input type="text" id="b" value="0"></div>
<div></div>
<input type="button" value="Перейти к расчету узлов Чебышева" onClick="Cheb(a,b)"> 

<div></div>



</body> 
</html>



не получается по формуле сделать((
помогите пожалуйста

Последний раз редактировалось Женя150, 20.09.2012 в 22:15.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребята нужно прикрутить автокликер к програме. ToxaRU Работа 2 19.05.2012 08:40
Нужно при вводе в текстовое поле тут же отобразить данный в другом месте klubnichkaaa AJAX и COMET 3 20.10.2011 20:46
нужно сделать фильтрацию элементов в таблице с помощью javascript vladi_09 ExtJS 1 05.10.2011 15:56
Нужно отредактировать слайдер glavkot Работа 0 22.08.2011 14:14
нужно создать много копий div ASM29A Элементы интерфейса 3 27.03.2010 20:22