Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Nubster
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 4
#1

Решение диф. уравнения для колебаний методом Рунге—Кутты 4го порядка.(С++) - C++

17.12.2011, 23:56. Просмотров 2569. Ответов 2
Метки нет (Все метки)

Ребят помогите пожалуйста решить такое на C++ уравнение x''=(-w^2)*x где w-const
там замену нужно сделать что то вроде y=x' и y'=x'' и 2 раза через стандартную схему перегнать , но что то не получается , буду очень признателен.

Добавлено через 21 час 52 минуты
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
// runge-runge.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
double func1(double t, double y){return -y;}
 
double func2(double t, double x){return x;}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    double x,y,x0,y0,t,t0,tn,k1,k2,k3,k4,k,m1,m2,m3,m4,m,h;
    cout<<"x0,y0,t0,tn,h"<<endl;
    cin>>x>>y>>t>>tn>>h;
    int n=(tn-t)/h;
    for(int i=0;i<=n;i++)
    {
        k1=func1(t,y);
        m1=func2(t,y);
        
        k2=func1(t+h/2,y+h*k1/2);
        m2=func2(t+h/2,y+h*k1/2);
        
        k3=func1(t+h/2,y+h*k2/2);
        m3=func2(t+h/2,y+h*k2/2);
 
        k4=func1(t+h,y+h*k3);
        m4=func2(t+h,y+h*k3);
 
        k=(k1+2*k2+2*k3+k4)/6;
        m=(m1+2*m2+2*m3+m4)/6;
        
        y=y+h*k;
        x=x+h*m;
        t=t+h;
        cout<<"t=   "<<t<<" y= "<<y<<"  x=  "<<x<<endl;
    }
    cin>>y;
 
 
    return 0;
}
вот что получилось только явно нужно функции исправить , нет соображений как...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2011, 23:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение диф. уравнения для колебаний методом Рунге—Кутты 4го порядка.(С++) (C++):

Решение задачи Коши методом Эйлера и Рунге-Кутты - C++
Доброго времени суток всем:) Писал прогу для решения задачи Коши методом Эйлера и Рунге-Кутты на С++. Вроде бы все реализовал, но при...

Решение дифуров методами Эйлера-Коши с итерациями и Рунге-Кутты четвертого порядка - C++
решить методами эйлера-коши с итерациями и рунге -куты четвертого порядка диф. уравнение y`+ycosx=e-sinx X e, y(0)=1 h=0.1

Рунге-Кутта 4го порядка из книги (The Art of Scientific Computing) - C++
Доброго всем дня! Нашел в сети книгу с исходниками, если кому нужно могу скинуть. Press W.H., Teukolsky S.A., Vetterling W.T., Flannery...

Исправить код в методе рунге кутты 4 порядка ля системы ДУ 1 порядка - C++
Вот код для метода рунге кутты 4 порядка для систему ДУ 1 порядка. Вроде все верно, но ответ не правильный. В чем ошибка. Подскажите...

Решение дифференциального уравнения методом Рунге-Кутта - C++
решить уравнение v'=u/m*m'. обе производные меняются по времени масса уменьшается, а скорость увеличивается, u=const

Метод Рунге Кутты для системы уравнений - C++
Добрый день! Столкнулся с проблемой, при решении задачи, а именно : Реализовать решение системы оду с количеством уравнений N,...

2
edward_jonson
159 / 159 / 25
Регистрация: 23.02.2011
Сообщений: 392
18.12.2011, 00:27 #2
зачем вам в функциях func1 и func2 аргумент t, если вы его никак не используете?
0
Nubster
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 4
18.12.2011, 00:56  [ТС] #3
Функции func1 и func2 заданны неправильно я не знаю как их правильно написать , я делал из соображений y=x'(должна быть func2) и y'=(-w^2)*x(func1) ...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2011, 00:56
Привет! Вот еще темы с ответами:

Численно решить ОДУ методом Рунге-Кутта 4 порядка - C++
Доброго времени суток. Мне нужно численно решить ОДУ методом Рунге-Кутта 4 порядка. Уравнение имеет вид: p'=-A-B*p, p(0)=p0. Проблема...

Какое условие поставить на выходе из цикла в методе Рунге Кутта 4 порядка для системы ДУ 1 порядка? - C++
Пока имеется вот такой код для решения системы ДУ 1 порядка, если имеется ошибка исправьте пожалуйста, Вопрос: как мне получить ответ, мне...

Решение краевой задачи для дифференциального уравнения методом сеток - C++
Мне в университете задали данную программу написать. но к сожалению на паре мы не успели пройти этот метод. не могу найти точный пример...

Решение методом Рунге - Кутта. Переполнение переменной - C++
Все формулы применил как из учебника. Методы Эйлера работают, а метод Рунге - Кутта не табулируется полностью и программа вылетает....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.