Форум программистов, компьютерный форум CyberForum.ru

Кубический сплайн - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамические массивы с указателями http://www.cyberforum.ru/cpp-beginners/thread1146661.html
Ввести с клавиатуры три целых неотрицательных числа. Первые два задают размеры двумерного массива. Третье указывает на величину циклического смещения строчек матрицы. С генерированную и циклически смещенную матрицы вывести на экран.
C++ Конкатенация строк Написать программу, которая делает сложение унарных чисел. Я написал программу, она даже правильно считает, но как мне потом сказали, нужно сделать как-то через строки.. Думаю нужно сделать как-то в первом и втором цикле, чтобы записало в строки, а потом в третьем цикле, там где нужно найти сумму, выполнить объединение(конкатенацию) строк. int main() { int m, n, s, s1, s2, i; cout... http://www.cyberforum.ru/cpp-beginners/thread1146659.html
Даны 2 предложения. Найти общее количество букв н в них C++
Ошибка в операторе if #include <stdio.h> #include <iostream.h> #include <windows.h> int pod(string s, string a) { int k=0; for (int i=0; s!=0; i++) if (a==s) k++;
Итерационный метод C++
Помогите найти ошибку в алгоритме. Ошибка в итоге выливается том что при подсчёте невязки, она не уменьшается, а увеличивается. Матрицу 4x4 и столбец свободных членов ввожу с клавиатуры. void IterativeMethod::bringingToTheEquivalentForm() //выражение x..x через уравнения { for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { G = -1*Matrix / Matrix; } G = 0;
C++ Const #define http://www.cyberforum.ru/cpp-beginners/thread1146634.html
{ const int HOLFSDsize= 2;//#define HOLFSDsize 2 // m-угольник void HOLFSD() { int i, n, l; // объявляем переменные float x1, y1, x, y; float a, b;
C++ Составление программ в обработке одномерных массивів Задан массив из N элементов. Организовать его введение из клавиатуры или создания из случайных чисел по желанию пользователя, и вычислить среднее арифметическое парных элементов массива. Помогите создать программу. подробнее

Показать сообщение отдельно
magasin
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 42

Кубический сплайн - C++

13.04.2014, 00:31. Просмотров 1348. Ответов 3
Метки (Все метки)

Есть простейшая прога для построения кубического сплайна
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <math.h>
using namespace std;
int main()
{int n=5,i,j;double h;
double *X=new double [n];
double *Y=new double [n];
cout<<"X:\n";
for(i=0;i<n;i++)
    cin>>X[i];
cout<<"Y:\n";
for(i=0;i<n;i++)
    cin>>Y[i];
h=X[1]-X[0];
double *Q=new double [n];
double *D=new double [n];
double *A=new double [n];
double *B=new double [n];
double *C=new double [n];
double *a=new double [n];
double *b=new double [n];
Q[0]=0;Q[4]=0;
for(i=1;i<n-1;i++)
D[i]=((Y[i+1]-Y[i])/h)-((Y[i]-Y[i-1])/h);
A[1]=0;A[2]=h/6;A[3]=(h+h)/3;
B[1]=h/6;B[2]=(h+h)/3;B[3]=0;
C[1]=h/6;C[2]=(h+h)/3;C[3]=0;
for(i=1;i<n-1;i++)
    {cout<<A[i]<<" "<<B[i]<<" "<<C[i]<<" "<<D[i];
cout<<endl;}
a[1]=-C[1]/B[1];
a[2]=-C[2]/(B[2]+A[2]-a[1]);
a[3]=-C[3]/(B[3]+A[3]-a[2]);
b[1]=(-D[1])/(B[1]);
b[2]=(-D[2]-A[2]*b[1])/(B[2]+A[2]*a[1]);
b[3]=(-D[3]-A[3]*b[2])/(B[3]+A[3]*a[2]);
for(i=1;i<n-1;i++)
    cout<<"a"<<i<<"="<<a[i]<<" "<<"b"<<i<<"="<<b[i]<<endl;
Q[3]=b[3];
Q[2]=a[2]*Q[3]+b[2];
Q[1]=a[1]*Q[2]+b[1];
for(i=0;i<n;i++)
    cout<<"Q"<<i<<"="<<Q[i]<<endl;
for(i=1;i<n-1;i++)
    cout<<"S"<<i<<"[x]="<<Q[i]/6*h<<"(x-"<<X[i-1]<<")+"<<Q[i]*(Y[i-1]/h-Q[i-1]/6)<<X[i]<<"(x-"<<")+"<<Y[i]/6-Q[i]/6<<"(x-"<<X[i-1]<<")"<<endl;
system("pause");
return 0;}
Проблема возникает при подсчете a[1]. Неважно какие точки я ввожу, a[1]=-1, постоянно. Помогите исправить.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru