close

Вход

Забыли?

вход по аккаунту

?

пример отчета

код для вставкиСкачать
Московский Энергетический Институт (технический университет)
Курсовая работа по курсу:
Вычислительная техника в инженерных расчетах
Группа: С-10-10
Вариант: 6 Студент: Меркушев Д.В. Преподаватель: Гончаров А.Л. Москва 2012
Задача:
1. Определить и построить аппроксимирующую зависимость абсолютного коэффициента термоэдсSабс(Т).
2. Определить температуры сплава, при которых Sабс=0.
3. Определить и построить зависимость абсолютной интегральной термоэдсспалаваE(T).
Методы используемые в данной программе:
Метод прогонки
Метод Гаусса для СЛАУ
Прямоугольников, Симпсона
Дихотомии
Описание используемых методов:
1. Составление расширенной матрицы Грамма
Составление матрицы выполняет процедура approks.
2. Решение матрицы методом Гаусса-Зейделя
Метод Гаусса-Зейделя - это итерационный метод решения СЛАУ. Для его решения преобразуем систему {█(а_11 x_1+a_12 x_2+...+a_1n x_n=a_(1,n+1)@а_21 x_1+a_22 x_2+...+a_2n x_n=a_(2,n+1)@................................................@а_11 x_1+a_12 x_2+...+a_nn x_n=a_(n,n+1) )┤
к виду
{█(x_1=(a_(1,n+1)-a_11 x_1-a_12 x_2-...-a_1 x_n)/(a_11+x_1)@x_2=(a_(2,n+1)-a_21 x_1-a_22 x_2-...-a_2 x_n)/(a_22+x_2)@........................................................................@x_n=(a_(n,n+1)-a_n1 x_1-a_n2 x_2-...-a_n x_n)/(a_nn+x_n)) (1)┤
Задав столбец начальных приближений x_1^0,x_2^0,...,x_n^0 , подставим их в правые части полученной системы(1) и вычислим новые приближения x_1^1,x_2^1,...,x_n^1 , которые опять подставим в систему (1), и т.д. Таким образом , организуется итерационный процесс, являющийся обобщением метода простых итераций на системы уравнений:
{█(x_1^((m+1))=φ_1 (x_1^((m) ),x_2^((m) ),...,x_n^((m) ))@x_2^((m+1))=φ_2 (x_1^((m) ),x_2^((m) ),...,x_n^((m) ))@..........................................@x_n^((m+1))=φ_n (x_1^((m) ),x_2^((m) ),...,x_n^((m) )))┤ (2)
Процесс (2) можно видоизменить, если использовать приближения к решениям, найденные при выполнении текущей итерации. Такое изменение, как правило, приводит к ускорению сходимости.
{█(x_1^((m+1))=φ_1 (x_1^((m) ),x_2^((m) ),...,x_n^((m) ))@〖 x〗_2^((m+1))=φ_2 (x_1^((m+1) ),x_2^((m+1) ),...,x_n^((m) ))@..........................................@x_n^((m+1))=φ_n (x_1^((m+1) ),x_2^((m+1) ),...,x_n^((m) )))┤ (3)
Решение матрицы методом Гаусса.
В простейшем случае алгоритм выглядит так:
Прямой ход:
Обратный ход. Из последнего ненулевого уравнения выражаем базисную переменную через небазисные и подставляем в предыдущие уравнения. Повторяя эту процедуру для всех базисных переменных, получаем фундаментальное решение.
Сравнивая два метода решения СЛАУ видно что гаусс находит более точное решение, чем Гаусс-Зейдель, но при итерационном уточнении решения Гаусса первые коэффициенты не сходятся, соответственно погрешность возрастает.
3. Аппроксимация данных методом наименьших квадратов
Если имеется набор экспериментальных данных, полученных со значительной погрешностью, необходимо провести аппроксимирующую кривую, которая не проходит через точки, но в то же время отражает исследуемую зависимость, сглаживает возможные выбросы за счет погрешности эксперимента. Аппроксимация - выбор аппроксимирующей функции, наиболее достоверно описывающей экспериментальные точки.
Отклонение - разница между экспериментальным значением и значением арифметической функции в этой точке.
Ф(х) - аппроксимирующая функция
Обозначим узлы исходной таблицы данных через хi, где 0<i<n - номер узла. Считаем известными значения экспериментальных данных в узловых точках f(хi)=уi. Введем непрерывную функцию ф(х) для аппроксимации дискретной зависимости f(x). В узлах функции будут отличаться на величину d=ф(х)-f(x). Отклоенияd могут принимать положительные и отрицательные значения. Чтобы не учитывать знаки, возведем каждое отклонение в квадрат и просуммируем квадраты отклонений по всем узлам. Методпостроения аппроксимирующей функции ф(х) из условий минимума величины Q называется методом наименьших квадратов (МНК). Наиболее распространен способ выбор функции ф(х) в виде линейной комбинации.
- базисные функции
4. Вычисление корней уравнения методом дихотомии
Если X0и X1граници отрезка,то полагаем X2 =( X0+ X1)/2и вычисляем, допустим получаем чтоf(X2)f(X1)<0, |f(X2)|- |f(X1)|<EPSтоX2является корнем, если не удовлетворяет неравенству то одна из границ принимает значение X2, при том что f(X2)f(X1,0)<0 (в зависимости какую из границ заменить на X2. Цикл выполняется пока не достигнет требуемой точности, метод всегда сходящийся если функция существует на этом участке.
5. Вычисление интеграла методом правых прямоугольников:
Построение прямоугольника идет справа на лево.
Приближенное значение интеграла определяется как площадь прямоугольника, одна из сторон которого есть длина отрезка интегрирования, а другая - аппроксимирующая константа. Константу берем равной значению f(x) в крайней правой точке отрезка.
При данном методе имеется погрешность равная сумме участков не захваченных интегралом или наоборот лишняя захваченная площадь, учитывается по методу рунге и априорная ошибка метода. 6. Метод Симпсона
Формулу Симпсона в общем виде:
Погрешность формулы Симпсона - метода четвертого порядка:
, Графическая иллюстрация метода.
На отрезке [Xi,Xi+1] длиной 2h строится парабола, проходящая через три точки (Xi,Yi),
(Xi+1,Yi),(Xi+2,Yi+2). Площадь под параболой, заключенная между осью OX ипрямымиX = Xi, X = Xi+2, принимают равной интегралу∫_x1^(x1+H)▒F(x)dx
Текстпрограммы:
PublicClassForm1
PrivateSub Form1_Load(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) HandlesMyBase.Load
EndSub
PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click
ReDimA1(n, 2), B1(m, 2)
Fori = 0 To n - 1
For j = 0 To 1
A1(i + 1, j + 1) = CSng(Me.DataGridView1.Item(j, i).Value)
Next
Next
Fori = 0 To m - 1
For j = 0 To 1
B1(i + 1, j + 1) = CSng(Me.DataGridView2.Item(j, i).Value)
Next
Next
interpol()
EndSub
PrivateSubЗагрузитьToolStripMenuItem_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) HandlesЗагрузитьToolStripMenuItem.Click
Me.OpenFileDialog1.ShowDialog()
EndSub
PrivateSub OpenFileDialog1_FileOk(ByVal sender AsSystem.Object, ByVal e AsSystem.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
Iffl = 0 Then
loadsystemfromfile(Me.OpenFileDialog1.FileName, Me.DataGridView1)
n = n1 + 1
Else
loadsystemfromfile(Me.OpenFileDialog1.FileName, Me.DataGridView2)
m = n1 + 1
EndIf
EndSub
PrivateSub Button2_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button2.Click
Dim it AsInteger
DimosthAsSingle
DimotvAsString
stp = CSng(Me.TextBox2.Text)
itmax = CInt(Me.TextBox4.Text)
eps = CSng(Me.TextBox3.Text)
otv = "Абсолютный коэффициент термоэдсSa(T)" + Chr(13)
Fori = 1 To n
otv = otv + CStr(Sa(i, 1)) + " " + CStr(Sa(i, 2)) + Chr(13)
Next
osth = 0
approks(stp)
Zeidel(itmax, it, stp)
Fori = 1 To n
osth = osth + (Sa(i, 2) - fynk(Sa(i, 1), stp)) ^ 2
osth = osth ^ 0.5
Next
otv = otv + "КоэфГаусс-Зейдель: " + Chr(13)
Fori = 0 Tostp
otv = otv + "C" + CStr(i) + "=" + CStr(C(i)) + Chr(13)
Next
otv = otv + Chr(13) + "Кол-воитераций it=" + CStr(it) + Chr(13) + Chr(13) + "Ошибкааппроксимации Q = " + CStr(osth) + Chr(13)
Me.RichTextBox1.Text = otv
EndSub
PrivateSub Button3_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button3.Click
Dim h, xx1, x, xx2, y1, y2, mh, mw, msx, msy, ms, TA, TB, j AsSingle
DimotvAsString
Dim graph AsGraphics = Me.PictureBox2.CreateGraphics
DimpnAsPen = NewPen(Color.Black, 2)
Dim pn1 AsPen = NewPen(Color.Brown, 2)
Me.PictureBox2.Refresh()
mh = CSng(Me.PictureBox2.Height) / 2
mw = CSng(Me.PictureBox2.Width) / 2
MS = CSng(Me.TextBox1.Text)
msx = mw / (Sa(n, 1) * ms)
msy = mh / (Sa(n, 1) * ms / 50)
graph.TranslateTransform(0, mh)
graph.DrawLine(pn, 0, -mh * 2, 0, mh * 2)
graph.DrawLine(pn, mw * 2, 0, -mw * 2, 0)
h = 0.05 : K1 = 0
TA = Sa(1, 1) : TB = Sa(1, 1)
Fori = 1 To n
IfSa(i, 1) < TA Then
TA = Sa(i, 1)
Else
IfSa(i, 1) > TB Then
TB = Sa(i, 1)
EndIf
EndIf
Next
For x = TA To TB Step h
xx1 = x
xx2 = (xx1 + h)
y1 = -fynk(xx1, stp)
y2 = -fynk(xx2, stp)
If y1 * y2 < 0 Then K1 = K1 + 1
graph.DrawLine(pn, msx * xx1, y1 * msy, msx * xx2, y2 * msy)
Next
Fori = 1 To n
graph.DrawRectangle(Pens.ForestGreen, msx * Sa(i, 1) - 1, -msy * Sa(i, 2) - 1, 2, 2)
Next
Me.RichTextBox1.Text = Me.RichTextBox1.Text + "Кол-вокорней= " + CStr(K1) + Chr(13)
j = 0
If K1 = 1 Then
iter = 0
otv = Chr(13) + "Корень: " + CStr(hord(TA, TB)) + Chr(13)
otv = otv + "Числоитераций=" + CStr(iter) + Chr(13)
Else
Fori = TA To TB Step 50
y1 = fynk(i, stp)
y2 = fynk(i + 50, stp)
If y1 * y2 < 0 Then
iter = 0
j = j + 1
otv = otv + "Корень №" + CStr(j) + "= " + CStr(hord(i, i + 50)) + Chr(13) + "Числоитераций=" + CStr(iter) + Chr(13)
EndIf
Next
EndIf
Me.RichTextBox1.Text = Me.RichTextBox1.Text + otv
EndSub
PrivateSub Button4_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button4.Click
Dim h, kofAsSingle
DimotvAsString
Dimi, j AsInteger
ReDimE1(n, 2), E2(n, 2)
h = CSng(Me.TextBox6.Text)
kof = CInt(Me.TextBox7.Text)
i = 50 : j = 0
Do
Ifi< 1000 Then
i = i + 50 : j = j + 1
E1(j, 1) = i
E1(j, 2) = pr(Sa(1, 1), Sa(j, 1), h)
runge(Sa(1, 1), Sa(j, 1), h)
E1(j, 2) = E1(j, 2) + Rung
Else
i = i + 20 : j = j + 1
E1(j, 1) = i
E1(j, 2) = pr(Sa(1, 1), Sa(j, 1), h)
runge(Sa(1, 1), Sa(j, 1), h)
E1(j, 2) = E1(j, 2) + Rung
EndIf
LoopUntili = Sa(n, 1)
otv = "Зависимость E(T), интегрирование методом правых прямоугольников: " + Chr(13)
Fori = 1 To n
otv = otv + CStr(E1(i, 1)) + " " + CStr(E1(i, 2)) + Chr(13)
Next
otv = otv + Chr(13)
i = 50 : j = 0
Do
Ifi< 1000 Then
i = i + 50 : j = j + 1
E2(j, 1) = i
E2(j, 2) = trap(Sa(1, 1), Sa(j, 1), h)
runge(Sa(1, 1), Sa(j, 1), h)
E2(j, 2) = E2(j, 2) + Rung
Else
i = i + 20 : j = j + 1
E2(j, 1) = i
E2(j, 2) = trap(Sa(1, 1), Sa(j, 1), h)
runge(Sa(1, 1), Sa(j, 1), h)
E2(j, 2) = E2(j, 2) + Rung
EndIf
LoopUntili = Sa(n, 1)
otv = otv + "Зависимость E(T), интегрирование методом трапеций: " + Chr(13)
Fori = 1 To n
otv = otv + CStr(E2(i, 1)) + " " + CStr(E2(i, 2)) + Chr(13)
Next
Me.RichTextBox1.Text = Me.RichTextBox1.Text + otv
EndSub
PrivateSub Button5_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button5.Click
Dimmh, mw, msx, msy, y1, y2, x1, x2, msAsSingle
Dim max AsDouble
Dim graph AsGraphics = Me.PictureBox1.CreateGraphics
DimpnAsPen = NewPen(Color.Gray, 1)
Dim pn1 AsPen = NewPen(Color.Gray, 1)
Me.PictureBox1.Refresh()
mh = CSng(Me.PictureBox1.Height) / 2
mw = CSng(Me.PictureBox1.Width) / 2
ms = CSng(Me.TextBox1.Text)
max = E1(1, 2)
Fori = 1 To n
IfMath.Abs(E1(i, 2)) >= max Then
max = Math.Abs(E1(i, 2))
EndIf
Next
msx = mw / (max * ms / 5)
msy = mh / (max * ms * 2) ' Масштабныекоэффициенты
graph.TranslateTransform(0, mh)
graph.DrawLine(NewPen(Brushes.Black, 1), 0, -mh * 2, 0, mh * 2) ' Рисовалки
graph.DrawLine(NewPen(Brushes.Black, 2), 0, 0, mw * 2, 0)
Fori = 1 To n - 1
x1 = E1(i, 1) : y1 = -E1(i, 2)
x2 = E1(i + 1, 1) : y2 = -E1(i + 1, 2)
graph.DrawLine(pn, msx * x1, y1 * msy, msx * x2, y2 * msy)
Next
Fori = 1 To n - 1
x1 = E2(i, 1) : y1 = -E2(i, 2)
x2 = E2(i + 1, 1) : y2 = -E2(i + 1, 2)
graph.DrawLine(pn1, msx * x1, y1 * msy, msx * x2, y2 * msy)
Next
EndSub
EndClass
ModuleModule1
Public n, n1, m, itmax, iter, n2, qq, q, ll, fl, K1, stp AsInteger
Public Rung, A(,), A1(,), B1(,), A2(,), Sa(,) AsSingle
Public B(), B2(,), E1(,), E2(,), C(), eps, aa(), bb(), cc(), dd() AsDouble
Public sysload AsBoolean
PublicSub loadsystemfromfile(ByVal filename AsString, ByVal tableName As System.Windows.Forms.DataGridView)
Dim myreader As Microsoft.VisualBasic.FileIO.TextFieldParser
Dim st() AsString
myreader = New Microsoft.VisualBasic.FileIO.TextFieldParser(filename)
myreader.SetDelimiters(" ")
ReDim st(1)
st = myreader.ReadFields()
Try
n1 = CInt(st(0)) - 1
Catch
MsgBox("Невозможнопрочитатьфайл", MsgBoxStyle.Critical, " Ошибкафийла")
Return
EndTry
fl = fl + 1
ReDim A(n1, 1)
tableName.RowCount = n1 + 1 : tableName.ColumnCount = 2
ReDim st(n1 + 1)
For i = 0 To n1
st = myreader.ReadFields()
For j = 0 To 1
A(i, 0) = CSng(st(0))
A(i, 1) = CSng(st(1))
tableName.Item(j, i).Value = st(j)
Next j
Next i
If myreader.ReadToEnd = ""Then
MsgBox("Данныеполучены", MsgBoxStyle.OkOnly)
Else
MsgBox("Данныеутеряны", MsgBoxStyle.OkOnly)
EndIf
EndSub
PublicSub interpol()
Dim graph AsGraphics = Form1.PictureBox1.CreateGraphics
Form1.PictureBox1.Refresh()
Dim pn AsPen = NewPen(Color.Black, 1)
Dim pn1 AsPen = NewPen(Color.Black, 2)
Dim i, i1, j AsInteger
Dim k(m), l(m), h(m), s(m), r(m), ed(,), ost, hh AsDouble
Dim mh, mw, msY, msX, fi, ms, x AsDecimal
ReDim aa(m), bb(m), cc(m + 1), dd(m), ed(n, 2), Sa(n, 2)
k(1) = 0
l(1) = 0
For i = 2 To m
h(i) = B1(i, 1) - B1(i - 1, 1)
h(i - 1) = B1(i - 1, 1) - B1(i - 2, 1)
s(i) = 2 * (h(i) + h(i - 1))
r(i) = 3 * ((B1(i, 2) - B1(i - 1, 2)) / (h(i)) - ((B1(i - 1, 2) - B1(i - 2, 2)) / h(i - 1)))
k(i) = (r(i) - h(i - 1) * k(i - 1)) / (s(i) - h(i - 1) * l(i - 1))
l(i) = h(i) / (s(i) - h(i - 1) * l(i - 1))
Next i
cc(1) = 0
cc(m) = k(m)
For i = (m - 1) To 2 Step (-1)
cc(i) = k(i) - l(i) * cc(i + 1)
Next i
For i = 1 To m
dd(i) = (cc(i + 1) - cc(i)) / (3 * h(i))
bb(i) = (B1(i, 2) - B1(i - 1, 2)) / (h(i)) - ((cc(i + 1) + 2 * cc(i)) * h(i) / 3)
aa(i) = B1(i - 1, 2)
Next i
mh = CSng(Form1.PictureBox1.Height) / 2
mw = CSng(Form1.PictureBox1.Width) / 2
ms = CSng(Form1.TextBox1.Text)
msX = mw / (B1(m, 1) * ms)
msY = mh / (B1(m, 1) * ms / 55)
graph.TranslateTransform(0, mh)
graph.DrawLine(pn1, 0, -mh * 2, 0, mh * 2)
graph.DrawLine(pn1, mw * 2, 0, -mw * 2, 0)
graph.DrawEllipse(Pens.Red, msX * B1(1, 1) - 2, -msY * B1(1, 2) - 2, 4, 4)
graph.DrawEllipse(Pens.Red, msX * B1(m, 1) - 2, -msY * B1(m, 2) - 2, 4, 4)
i1 = 0
For i = 1 To m - 1
hh = 0.1
For x = B1(i, 1) To B1(i + 1, 1) Step hh
fi = aa(i + 1) + bb(i + 1) * (x - B1(i, 1)) + cc(i + 1) * (x - B1(i, 1)) * (x - B1(i, 1)) + dd(i + 1) * (x - B1(i, 1)) * (x - B1(i, 1)) * (x - B1(i, 1))
If x < 1001 Then
ost = (x Mod 50)
If ost = 0 Then
i1 = i1 + 1
ed(i1, 1) = x
ed(i1, 2) = fi
EndIf
Else
ost = (x Mod 20)
If ost = 0 Then
i1 = i1 + 1
ed(i1, 1) = x
ed(i1, 2) = fi
EndIf
EndIf
graph.DrawRectangle(pn, msX * x, -msY * fi, 1, 1)
Next x
Next i
i = 50 : j = 0
Do
If i < 1000 Then
i = i + 50 : j = j + 1
Sa(j, 1) = i
Sa(j, 2) = A1(j, 2) - ed(j, 2)
Else
i = i + 20 : j = j + 1
Sa(j, 1) = i
Sa(j, 2) = A1(j, 2) - ed(j, 2)
EndIf
LoopUntil i = B1(m, 1)
EndSub
PublicSub approks(ByVal mm)
Dim i, j AsInteger
ReDim B(mm), B2(mm, mm)
For ii = 0 To mm
For j = 0 To mm
For i = 0 To n - 1
B2(ii, j) = B2(ii, j) + (Sa(i + 1, 1) ^ (j)) * (Sa(i + 1, 1) ^ (ii))
Next i
Next j
Next ii
For i = 0 To mm
For j = 0 To n - 1
B(i) = B(i) + (Sa(j + 1, 2) * Sa(j + 1, 1) ^ (i))
Next j
Next i
EndSub
PublicSub Zeidel(ByVal itmax, ByRef it, ByVal mm)
Dim S, T, Mn, x3() AsDouble
Dim i, j, fl AsInteger
ReDim C(mm), x3(mm) 'задание начального приближения
it = 0
fl = 1
Do
it = it + 1
If it > 1 Then
fl = 0
For i = 0 To mm
Mn = 0
Mn = C(i) - x3(i)
IfMath.Abs(Mn) > eps Then
fl = 1
EndIf
Next
For i = 0 To mm
x3(i) = C(i)
Next
EndIf
i = 0
Do
S = 0
For j = 0 To mm
If i <> j Then
S = S + B2(i, j) * C(j)
EndIf
Next
T = B(i) - S
C(i) = T / B2(i, i)
i = i + 1
LoopWhile i <= mm
LoopWhile (fl = 1) And (it < itmax)
EndSub
PublicFunction fynk(ByVal X, ByVal k)
Dim i AsInteger
For i = 0 To k
fynk = fynk + C(i) * X ^ i
Next
EndFunction
PublicFunction hord(ByVal x1, ByVal x12)
Dim eps1 AsSingle
eps1 = CSng(Form1.TextBox5.Text)
iter = 0
Do
iter = iter + 1
x1 = x1 + (x12 - x1) * (fynk(x1, stp)) / (fynk(x1, stp) - fynk(x12, stp))
LoopWhile (Math.Abs(fynk(x1, stp)) >= eps1)
hord = x1
EndFunction
PublicFunction pr(ByVal xx1, ByVal xx2, ByVal h)
Dim sum, x AsDouble
sum = 0 : q = 0
For x = xx1 To xx2 Step h
sum = sum + h * fynk(x, stp)
Next
pr = sum + osh(xx1, xx2, h)
q = 1
EndFunction
PublicFunction trap(ByVal xx1, ByVal xx2, ByVal h)
Dim sum, x3 AsSingle
sum = 0 : q = 0
For x3 = xx1 + h To xx2 - h Step h
sum = sum + fynk(x3, stp)
Next
sum = 2 * sum + fynk(xx1, stp) + fynk(xx2, stp)
trap = (h / 2) * sum
trap = trap + oshib(xx1, xx2, h)
q = 2
EndFunction
PublicFunction osh(ByVal xx1, ByVal xx2, ByVal h)
Dim sum, x AsDouble
sum = 0
For x = xx1 To xx2 Step h
sum = sum + h * fp1(x)
Next
osh = (h / 2) * sum
EndFunction
PublicFunction oshib(ByVal xx1, ByVal xx2, ByVal h)
Dim sum, x3 AsDouble
sum = 0
For x3 = xx1 To xx2 Step h
sum = sum + h * fp2(x3)
Next
oshib = -((h ^ 2) / 12) * sum
EndFunction
PublicSub runge(ByVal xx1, ByVal xx2, ByVal h)
Dim kof AsSingle
kof = CInt(Form1.TextBox7.Text)
Rung = 0
If q = 1 Then
Rung = (pr(xx1, xx2, h) - pr(xx1, xx2, h * kof)) / (kof ^ 2 - 1)
Else
Rung = (trap(xx1, xx2, h) - trap(xx1, xx2, h * kof)) / (kof ^ 2 - 1)
EndIf
EndSub
Function fp2(ByVal X)
For i = 2 To stp
fp2 = fp2 + C(i) * i * (i - 1) * X ^ (i - 2)
Next
EndFunction
Function fp1(ByVal X)
For i = 1 To stp
fp1 = fp1 + C(i) * X ^ (i - 1) * i
Next
EndFunction
EndModule
Результаты вычислений:
Выводы:
Сравнив два метода решения СЛАУ пришел к мнению что решение по методу Гаусса более точное, но он более чувствителен к выбросам точек и степеням полинома, в то время как решение по Гауссу-Зейделю менее чувствительно к выбросам точек и график проходит приблизительно посередине между точек (при выбросах), а другой метод решения при данной ситуации может получить не корректное решение и в следствии получение не качественной аппроксимации.
Из полученных данных термоэдс можно судить о разности температур при сварке двух разнородных сталей друг относительно друга, т.к. Термоэдс - электродвижущая сила U, возникающая в электрической цепи, состоящей из нескольких разнородных проводников, контакты между которыми имеют различные температуры. По моему мнению большие значения термоэдс могут судить о плохом сплавлении разнородных металлов и образованию не однородного шва. 
Документ
Категория
Рефераты
Просмотров
62
Размер файла
152 Кб
Теги
отчет, пример
1/--страниц
Пожаловаться на содержимое документа