Code to input function

I want to make a code where user can input the the function and as the output they get plot of f(x) vs x and also the roots of that non linear equation.

回答 (2 件)

David Hill
David Hill 2022 年 8 月 29 日

1 投票

Plotting would not be a problem, but finding all the roots is a problem. Recommend looking at fzero
a=input('Function (example: @(x)x.*cos(x)-x.^2.*sin(x)+exp(-x)): ','s');
f=str2func(a);
x=-pi:.001:2*pi;
plot(x,f(x));
Chunru
Chunru 2022 年 8 月 29 日
編集済み: Chunru 2022 年 8 月 29 日

0 投票

% fstr = input("Key in a function of x (eg. x.^2 + 2*x - 1): ", "s")
fstr = "@(x) x.^2 + 2*x - 1"; % This is for on-line matlab
try
% eval("f = "+ fstr )
f = str2func(fstr)
fplot(f)
x1 = fzero(f, 0)
title(fstr + ": x1="+x1)
end
f = function_handle with value:
@(x)x.^2+2*x-1
x1 = 0.4142

1 件のコメント

Walter Roberson
Walter Roberson 2022 年 8 月 29 日
Do not use eval for this purpose, use str2func()

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeOptimization についてさらに検索

製品

リリース

R2022a

質問済み:

2022 年 8 月 29 日

編集済み:

2022 年 8 月 29 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by