Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 7

Программа не правильно считает решение функции во втором столбике

10.12.2021, 11:01. Показов 1488. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте, в чем может быть ошибка? программа неверно выводит 2 столбец x(t)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
using System;
using System.IO;
 
namespace lr1_mv
{
    class Program
    {
        static readonly double Fm = 150;
        static readonly double m = 2;
        static readonly double w = 0.1;
        static readonly double beta = 1;
        static readonly double K = 4;
 
        static void Main(string[] args)
        {
            Console.WriteLine("ЧМ решения задачи Коши методом Адамса-Бошфорта\n");
 
            Console.Write("Введите количество точек:\t");
            int count = int.Parse(Console.ReadLine());              // количество точек
 
            double[] t = new double[count];                         // t
            double[] x = new double[count];                         // x(t)
            double[] z = new double[count];                         // x'(t)
 
            double[] coordinates = { 0, 3 };                      // A и B
            double[] beginUsl = { 0, 0 };                           // x(0) = 0 и x'(0) = 0
 
            AdamsBashfort(beginUsl, coordinates, count, t, x, z);   // поиск каркаса решения
 
            WriteFile(t, x, z, count);
        }
 
        private static void AdamsBashfort(double[] beginUsl, double[] coordinates, int count, double[] x, double[] y, double[] z)
        {
            double a = coordinates[0];
            double b = coordinates[1];
 
            double h = Math.Abs(a - b) / (count - 1);               // равномерный шаг
 
            x[0] = a;
            x[count - 1] = b;
 
            for (int i = 1; i < count - 1; i++)
                x[i] = x[i - 1] + h;
 
            y[0] = beginUsl[0];
            z[0] = beginUsl[1];
 
            RyngeKyta(x, y, z, 4, h);                               // поиск разгонных точек
 
            for (int i = 2; i < count - 1; i++)
            {
                z[i + 1] = z[i] + (h / 12) * (23 * F2(x[i], y[i], z[i]) - 16 * F2(x[i - 1], y[i - 1], z[i - 1]) + 5 * F2(x[i - 2], y[i - 2], z[i - 2]));
                y[i + 1] = y[i] + (h / 12) * (23 * F1(x[i], y[i], z[i]) - 16 * F1(x[i - 1], y[i - 1], z[i - 1]) + 5 * F1(x[i - 2], y[i - 2], z[i - 2]));
            }
        }
 
        private static void RyngeKyta(double[] x, double[] y, double[] z, int count, double h)
        {
            for (int i = 0; i < count - 1; i++)
            {
                double k11 = F1(x[i], y[i], z[i]);
                double k12 = F1(x[i] + (h / 2.0), y[i] + k11 * (h / 2.0), z[i] + k11 * (h / 2.0));
                double k13 = F1(x[i] + (h / 2), y[i] + k12 * (h / 2), z[i] + k12 * (h / 2));
                double k14 = F1(x[i] + (h / 2), y[i] + k13 * h, z[i] + k13 * h);
 
                y[i + 1] = y[i] + (h / 6) * (k11 + 2 * k12 + 2 * k13 + k14);
 
                double k21 = F2(x[i], y[i], z[i]);
                double k22 = F2(x[i] + (h / 2), y[i] + k21 * (h / 2), z[i] + k21 * (h / 2));
                double k23 = F2(x[i] + (h / 2), y[i] + k22 * (h / 2), z[i] + k22 * (h / 2));
                double k24 = F2(x[i] + h, y[i] + k23 * h, z[i] + k23 * h);
 
                z[i + 1] = z[i] + (h / 6) * (k21 + 2 * k22 + 2 * k23 + k24);
            }
        }
 
        private static double F1(double x, double y, double z)
        {
            return z;
        }
 
        private static double F2(double x, double y, double z)
        {
            return (Math.Abs(Fm * Math.Cos(w * x)) - (beta * z) - (K * y)) / (m);
        }
 
        private static void WriteFile(double[] x, double[] y, double[] z, int count)
        {
            string writePath = $"{Environment.CurrentDirectory}\\out.txt";
 
            try
            {
                using (StreamWriter sw = new StreamWriter(writePath, false, System.Text.Encoding.Default))
                {
                    for (int i = 0; i < count; i++)
                        sw.WriteLine($"{x[i]}\t{y[i]}\t{z[i]}");
                }
 
                Console.WriteLine("Запись выполнена!");
            }
            catch (Exception e)
            {
                Console.WriteLine("Запись прервана:\t" + e.Message);
            }
        }
    }
}
Миниатюры
Программа не правильно считает решение функции во втором столбике  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2021, 11:01
Ответы с готовыми решениями:

В каждом втором столбике матрицы проверить элементы на ноль
Заполнить матрицу случайными числами. В каждом втором столбике матрицы проверить элементы на ноль. Если этот элемент найден, то...

Не правильно считает программа
Чем больше ввожу столетие, тем меньше пятниц 13 получается. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; ...

Программа считает не правильно
Уважаемые форумчане. Вот моя программа с базой данных. Проблема в том, что программа почему-то неправильно считает по формуле (точнее,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.12.2021, 11:01
Помогаю со студенческими работами здесь

Программа не правильно считает
Сделал программу в C++ Builder . Она должна приближать интеграл по методу трапеции ,но выводит почему-то 2 ... void __fastcall...

Программа не правильно считает результат
Вот условие задачи: http://floomby.ru/s2/U4pWUV Вот код: #include &lt;iostream&gt; using namespace std; int main() { int left,...

Не правильно считает программа...ошибкааа:(
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids,...

Программа с постусловием не правильно считает результат
Добрый день! Согласно задания: Разработать алгоритм и программу, имеющих структуру цикла с постусловием и осуществляющих табулирование...

Программа считает правильно до определённого значения
#include &lt;iomanip&gt; using namespace std; int main(void) { long double szD = 1; szD /= 3; cout &lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru