|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
Аппроксимировать набор точек многочленом28.03.2014, 13:31. Показов 8983. Ответов 51
Здравствуйте, очень нужна ваша помощь! задана функция f(x)=a0+a1*x+a2*x^2+a3*x^3+а4*x^4 , нужно построить график и найти коэффициенты а0, а1, а2, а3, а4. значение функция f(x) задано (несколько значений) и x заданы (отрезок значений). как это все сделать, запуталась... воспользоваться наверно нужно это командой p0 = polyfit(x,y,0)
p1 = polyfit(x,y,1) p2 = polyfit(x,y,2) p3 = polyfit(x,y,3) p4 = polyfit(x,y,4), запишу значения x = 1:5 а как y записать, который имеет несколько значений и все остальной сделать, не получается
0
|
|
| 28.03.2014, 13:31 | |
|
Ответы с готовыми решениями:
51
Не используя стандартных функций, аппроксимировать заданную функцию многочленом n-й степени по МНК
|
|
|
|
| 02.04.2014, 16:48 | |
|
Matlab M format longgMatlab M p(1), p(2), p(3), p(4), p(5)
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 02.04.2014, 16:57 [ТС] | |
|
просто вот так написать? p(1), p(2), p(3), p(4), p(5)
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 02.04.2014, 17:15 [ТС] | |
|
спасибо!
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 08.04.2014, 21:01 [ТС] | |
|
Здравствуйте!
еще нужна ваша помощь. как записать программу в матлаб для вычисления параметров вот такого полиномаf(x,y)= p0+p1x+p2y+p3xy+p4*x^2+p5*y^2+....и т.д.
0
|
|
|
53 / 53 / 14
Регистрация: 26.02.2014
Сообщений: 150
|
|
| 09.04.2014, 00:13 | |
|
Непонятно. Что у на входе, что надо получить?
Найти коэффициенты по известным значениям (т.е. аналог polyfit)? Нет проблем. Но все-таки уточните задачу.
1
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 09.04.2014, 11:29 [ТС] | |
|
до этого задача была, там была одна плоскость, там координата y просто этой буквой была названа, на самом деле это не y. f(x)=a0+a1*x+a2*x^2+a3*x^3+а4*x^4. а сейчас задача уже в двух плоскостях x и y.
f(x,y)= а0+а1*x+а2*y+а3*x*y+а4*x^2+а5*y^2+....и т.д. мне программу записывать так же, только добавится еще одна координата ? y = [.......] - диапазон координаты y x= [........] - диапазон координаты x s= [.......] p=polyfit(x,y,s,5); x1=[x(1):0.000001:x(end)]; y1=[y(1):0.000001:y(end)] s1=polyval(p,x1,y1); % значения полинома plot(x,y,s,'+', x1,y1,s1'-');
0
|
|
|
53 / 53 / 14
Регистрация: 26.02.2014
Сообщений: 150
|
|
| 09.04.2014, 16:16 | |
|
polyfit только для одной координаты.
Есть двумерные аналоги, сделанные любителями. Погуглите polyfit2d
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 09.04.2014, 16:27 [ТС] | |
|
имерно во так сделать http://www.mathworks.com/matla... olyFit2D.m
0
|
|
|
53 / 53 / 14
Регистрация: 26.02.2014
Сообщений: 150
|
|
| 09.04.2014, 16:31 | |
|
вам помочь скопировать?
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 09.04.2014, 16:37 [ТС] | |
|
я не совсем понимаю эту программу. а количество значений в x,y,f так же должно быть одинаковым?
0
|
|
|
53 / 53 / 14
Регистрация: 26.02.2014
Сообщений: 150
|
|||||||||||
| 09.04.2014, 17:26 | |||||||||||
|
В общем да, реализация не самая понятная, да и незаконченная.
Я дам сначала общую идею. Положим, у вас есть 3 столбца X, Y, F, все высоты N, где первые два - координаты точек на плоскости, третий - значения функции в этих точках. Вы хотите, допустим, аппроксимировать эту функцию полиномом, состоящим из разных степеней x и у, скажем f= a0 + a1*x + a2*y + a3*x*y + a4*x*x Тогда действия такие. 1. составить матрицу М, в которой каждому элементу полинома x^i * y^j соответствует колонка его значений У функции f есть такие элементы: 1, x, y, xy, xx Тогда
задача решена. Предлагаю поэкспериментировать с нахождением коэффициентов для разных полиномов. Продолжение будет, когда усвоите эту часть.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 09.04.2014, 22:25 [ТС] | |
|
вот так примерно программа будет выглядеть? только я пока не писала значения матриц f, x,y. и в расчете вектора M надо перебрать написать все комбинации X и Y, если у меня будет 14 коэффициентов полиномов а0...а14.
f = []; % значения функции x = []; % матрица x y = []; % матрица y function p = polyFit2D(f,x,y,14) % вектор из коэффициентов а0...а14 M=[ones(N,1) X Y X.*Y X.*X Y.*Y X.*Y.*Y Y.*X.*X X.*X.*X Y.*Y.*Y]; A=M\F; % коэффициенты полинома
0
|
|
|
53 / 53 / 14
Регистрация: 26.02.2014
Сообщений: 150
|
|
| 10.04.2014, 00:26 | |
|
да, суть именно такая.
в программе по вашей ссылке эти комбинации строились автоматически, но как-то не очевидным способом.
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 10.04.2014, 11:37 [ТС] | |
|
что то матлабу не нравится эта функция, ошибку выдает
f = [3.3422e8 4.5673e8 3.5427e8 3.4372e8 4.4732e8 3.5401e8 3.2741e8 4.2791e8 3.5933e8 ]; % значения функции x = [0 0.5e-4 1e-4 0 0.5e-4 1e-4 0 0.5e-4 1e-4 ]; % матрица x y = [0 0 0 0.5e-4 0.5e-4 0.5e-4 1e-4 1e-4 1e-4 ]; % матрица y function p = polyFit2D(f,x,y,4) % вектор из коэффициентов а0...а14 M=[ones(N,1) X Y X.*Y X.*X Y.*Y X.*Y*Y Y.*X*X X.*X*X Y.*Y*Y X.*Y*Y*Y X.*X*Y*Y Y.*X*X*X X.*X*X*X Y.*Y*Y*Y]; A=M\F; % коэффициенты полинома
0
|
|
|
53 / 53 / 14
Регистрация: 26.02.2014
Сообщений: 150
|
|
| 10.04.2014, 12:01 | |
|
Ксюня, я же писал - X,Y,F - *столбцы*. А у вас строки.
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 10.04.2014, 13:00 [ТС] | |
|
вот так тогда? но она тоже не работает
clc x = [0 0.5e-4 1e-4 0 0.5e-4 1e-4 ]; % матрица x y = [0 0 0 0.5e-4 0.5e-4 0.5e-4 ]; % матрица y f = [3.3422e8 4.5673e8 3.5427e8 3.4372e8 4.4732e8 3.5401e8 ]; % значения функции function p = polyFit2D(f,x,y,4) % вектор из коэффициентов а0...а14 M=[ones(6,1) X Y X.*Y X.*X Y.*Y X.*Y*Y Y.*X*X X.*X*X Y.*Y*Y X.*Y*Y*Y X.*X*Y*Y Y.*X*X*X X.*X*X*X Y.*Y*Y*Y]; A=M\F; % коэффициенты полинома
0
|
|
|
53 / 53 / 14
Регистрация: 26.02.2014
Сообщений: 150
|
|
| 10.04.2014, 15:59 | |
|
столбец можно писать так [1; 2; 3; 4]
или так [1 2 3 4]' дальше в коде сплошые косяки. в объявлении функции аргументы f,x,y, в теле X,Y,Z, для матлаба это разные переменные. что за "4" в списке аргументов? что за "6" в ones(6,1)?
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 42
|
|
| 10.04.2014, 17:52 [ТС] | |
|
4 это степень (ну то что максимальная степень 4 будет) , а 6 это то что высота матрицы x,y,f (ее значений) 6 .
0
|
|
|
53 / 53 / 14
Регистрация: 26.02.2014
Сообщений: 150
|
|||||||||||
| 11.04.2014, 01:53 | |||||||||||
|
Ксюня, в аргументах функции описываются ПЕРЕМЕННЫЕ, корорые ей будут передаваться!
Там не может быть никакий констант! Употребление "6" более осмысленное, но что делать, если понадобится другой размер? Переписывать функцию? К вашему сведению, размер вектора можно узнать аж тремя функциями:
1
|
|||||||||||
| 11.04.2014, 01:53 | |
|
Помогаю со студенческими работами здесь
40
Аппроксимировать многочленом L2(x)
Разбить набор точек по три по правилу
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|